国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

不該錯的問題:IsPostBack in ASP.NET, Programming with Dat

2024-07-10 13:07:37
字體:
來源:轉載
供稿:網友

唉,現在才發現,原來在asp.net中ispostback屬性是多么的重要......

一般是在page_load中檢查是否是第一次加載本頁或是判斷是否是用戶提交(postback)
if (!ispostback) {
//do something
}
在用datagrid訪問和更新數據庫時沒有注意到這個問題,會出現各種各樣的奇怪問題,比如我的這種.

問題描述:
用datagrid訪問和更新數據庫(sql server --northwind --table name:categories --query :select categoryid,categoryname,description form categories ),除了更新操作以外,其它功能ok.對datagrid進行如下操作:點擊“編輯”,相應的行數據變為可編輯,同時編輯按鈕被“更新”和“取消”代替。對數據進行編輯,如把description中的aaa改為bbb。再點“更新”按鈕。本意是想用此方法將修改后的數據(bbb)代替數據庫中原有的aaa,當然是用update方法了。但在點“更新”后,數據沒有改變,我做過測試,update方法是有效的,也就是說,update方法更新的不是新數據,而是沒有修改前的舊數據,造成數據沒有更新(實際上是更新了)。要注意的是我的page_load事件如下
private void page_load(object sender, system.eventargs e)
{
// 在此處放置用戶代碼以初始化頁面
olead.fill(ds);//olead--oledbadapter
dg.databind();//dg--datagrid
}

分析問題(個人推測,請指正):
由于沒有用ispostback判斷是否是第一次加載此頁面,所以不管什么情況下只要有postback,都會對dg(datagrid)進行數據綁定。所以在進行任何的sumbit后,dg都會去數據庫綁定數據而不理會頁面中的數據。
當對選中的數據進行修改完畢后,在點“更新”時,提交此頁面修改的數據,而馬上遇到page_load事件,不等對修改數據進行處理,服務器就先生成原頁面(ms用這種方法提高速度?),發現dg.databind(),執行之,于是放棄數據庫更新,于是看不到更新結果了。

解決問題:
解決倒是很簡單,page_load事件中加上對ispostback的判斷就可以了。
private void page_load(object sender, system.eventargs e)
{
// 在此處放置用戶代碼以初始化頁面
olead.fill(ds);//olead--oledbadapter
if(!ispostback)
{
dg.databind();//dg--datagrid
}
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 博爱县| 天全县| 化隆| 繁昌县| 盖州市| 万宁市| 铜川市| 肇东市| 石柱| 新邵县| 应城市| 兴宁市| 萍乡市| 宁陕县| 馆陶县| 浮梁县| 静海县| 集安市| 鹿邑县| 宁强县| 壶关县| 弋阳县| 揭西县| 于田县| 安塞县| 崇明县| 扎囊县| 松桃| 太和县| 永安市| 堆龙德庆县| 万州区| 定襄县| 金川县| 镇坪县| 清新县| 剑阁县| 仁化县| 柘城县| 馆陶县| 西城区|