Datagrid常见的错误
摘要:学习如何避免在使用 asp.net datagrid 控件进行开发时可能发生的一些常见错误(本文包含一些指向英文站点的链接)。
目录
可以使用 datagrid 创建列表数据而没有使用
忘记在 page_load 事件中检查 ispostback
需要更大的灵活性时,仍坚持使用自动生成的列
尝试仅使用控件 id 来引用 datagrid 项目中的控件
可以(或应该)使用分页而没有使用
忘记在每个 datagrid 事件中执行 .databind() 调用,从而导致回发
运行时不必要地在 datagrid 中动态创建 datagrid 控件或列
持续使用大型 viewstate
使用 itemdatabound 或 itemcreated 事件时,忘记检查适当的 listitemtype
需要对生成的 html 有更多的控制时,过多地使用了 datagrid(repeater 也许是更好的选择)
参考资料
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 用户可以使用属性生成器以图形化的方式创建这些列。[www.iocblog.net 来源]
Tag: DataGrid
文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。