程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET中Datagrid常見錯誤

ASP.NET中Datagrid常見錯誤

編輯:關於ASP.NET

摘要:學習如何避免在使用 ASP.NET Datagrid 控件進行開發時可能發生的一些常見錯誤。

Datagrid 控件是 Microsoft? ASP.NET 中功能最強、用途最廣的 Web 控件之一,這一點已經得到了 ASP.NET 權威人士的認同。雖然 Datagrid 控件易於使用,但同樣易於給使用者帶來麻煩。以下是許多人所犯的一些錯誤,這些人包括從初學者到富有經驗的 .NET 專家。您可以看到許多苦悶的使用者在 ASP.NET 新聞組和論壇就這些錯誤提出問題。遵循本文概述的相當簡單的步驟,可以幫助您避免這些錯誤,並節約大量的開發時間。

可以使用 Datagrid 創建列表數據而沒有使用

我知道您不會再使用如下所示的代碼,但 ASP.NET 領域中許多守舊的用戶仍在繼續使用它們:

Response.Write("<table>")
While MyDataReader.Read()
Response.Write("<tr>")
Response.Write("<td>")
Response.Write(MyDataReader(0))
Response.Write("</td>")
Response.Write("</tr>")
Loop
Response.Write("</table>")

可以對以上代碼進行簡化,使其僅為:

<asp:datagrid runat="server" datasource="MyDataReader"/>

並調用 .DataBind() 方法。即使需要對HTML輸出進行特殊的控制,您也可以在用戶界面上記錄集的內容重復出現的情況下,使用某個數據 Web 控件。

忘記在 Page_Load 事件中檢查 IsPostBack

最常見的錯誤之一是忘記在數據綁定之前檢查頁面的 IsPostBack 條件。例如,Datagrid 處於“Edit”(編輯)模式時,忽略該項檢查將導致已編輯的值被數據源中的原始值覆蓋。然而,該規則至少有一個主要的例外,請參閱持續使用大型 ViewState。

以下是包含 IsPostBack 檢查的一個典型 Page_Load 事件。BindGrid() 是一個例程,用於導入並設置 Datagrid 的數據源,並調用 DataBind() 方法。

Sub Page_Load
If Not IsPostBack Then
BindGrid()
End If
End Sub

需要更大的靈活性時,仍堅持使用自動生成的列

如果 Datagrid 所處的環境需要任何一種特殊格式,或是需要使用 Datagrid 中的其他任何 Web 控件,那麼必須關閉 AutoGenerateColumns。將 AutoGenerateColumns 屬性的設置保持為“True”(默認設置)的做法,僅在最簡單的 Datagrid 方案中有效。但對幾乎所有實際的應用程序,必須將該屬性設置為“False”,並在 Datagrid 聲明的 <columns></columns> 段中明確地指定列。Microsoft Visual Studio? .NET 用戶可以使用屬性生成器以圖形化的方式創建這些列。

注意:如果將 AutoGenerateColumns 的設置保持為“True”,並且在 Datagrid 的 <columns> 段中指定了列,那麼最終將得到對列的重復設置。系統將首先顯示特別聲明的列,隨後是所有自動生成的列。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved