常见的Datagrid错误研究

上传人:ni****g 文档编号:519725818 上传时间:2023-10-17 格式:DOCX 页数:15 大小:42.44KB
返回 下载 相关 举报
常见的Datagrid错误研究_第1页
第1页 / 共15页
常见的Datagrid错误研究_第2页
第2页 / 共15页
常见的Datagrid错误研究_第3页
第3页 / 共15页
常见的Datagrid错误研究_第4页
第4页 / 共15页
常见的Datagrid错误研究_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《常见的Datagrid错误研究》由会员分享,可在线阅读,更多相关《常见的Datagrid错误研究(15页珍藏版)》请在金锄头文库上搜索。

1、常见 DDataagriid 错错误Marccie Robbilllardd DaataggriddGirrl.ccom 20033 年 11 月 适用于: Micrrosooft ASSP.NNET 摘要:学学习如何何避免在在使用 ASPP.NEET DDataagriid 控控件进行行开发时时可能发发生的一一些常见见错误(本文包包含一些些指向英英文站点点的链接接)。 目录 可以使用用 Daataggridd 创建建列表数数据而没没有使用用 忘记在 Pagge_LLoadd 事件件中检查查 IssPosstBaack 需要更大大的灵活活性时,仍坚持持使用自自动生成成的列 尝试仅使使用控件件

2、IDD 来引引用 DDataagriid 项项目中的的控件 可以(或或应该)使用分分页而没没有使用用 忘记在每每个 DDataagriid 事事件中执执行 .DattaBiind() 调调用,从从而导致致回发 运行时不不必要地地在 DDataagriid 中中动态创创建 DDataagriid 控控件或列列 持续使用用大型 VieewSttatee 使用 IItemmDattaBooundd 或 IteemCrreatted 事件时时,忘记记检查适适当的 LisstIttemTTypee 需要对生生成的 HTMML 有有更多的的控制时时,过多多地使用用了 DDataagriid(RRepeea

3、teer 也也许是更更好的选选择) 参考资料料 Dataagriid 控控件是 Miccrossoftt ASSP.NNET 中功能能最强、用途最最广的 Webb 控件件之一,这一点点已经得得到了 ASPP.NEET 权权威人士士的认同同。虽然然 Daataggridd 控件件易于使使用,但但同样易易于给使使用者带带来麻烦烦。以下下是许多多人所犯犯的一些些错误,这些人人包括从从初学者者到富有有经验的的 .NNET 专家。您可以以看到许许多苦闷闷的使用用者在 ASPP.NEET 新新闻组和和论坛就就这些错错误提出出问题。遵循本本文概述述的相当当简单的的步骤,可以帮帮助您避避免这些些错误,并节约约

4、大量的的开发时时间。 可以使用用 Daataggridd 创建建列表数数据而没没有使用用 我知道您您不会再再使用如如下所示示的代码码,但 ASPP.NEET 领领域中许许多守旧旧的用户户仍在继继续使用用它们: Respponsse.WWritte() Whille MMyDaataRReadder.Reaad() Respponsse.WWritte() Respponsse.WWritte() Respponsse.WWritte(MMyDaataRReadder(0) Respponsse.WWritte() Respponsse.WWritte() LooppRespponsse.WWr

5、itte() 可以对以以上代码码进行简简化,使使其仅为为: ,并并调用 .DaataBBindd() 方法。即使需需要对 HTMML 输输出进行行特殊的的控制,您也可可以在用用户界面面上记录录集的内内容重复复出现的的情况下下,使用用某个数数据 WWeb 控件。 忘记在 Pagge_LLoadd 事件件中检查查 IssPosstBaack 最常见的的错误之之一是忘忘记在数数据绑定定之前检检查页面面的 IIsPoostBBackk 条件件。例如如,Daataggridd 处于于“Ediit”(编辑辑)模式式时,忽忽略该项项检查将将导致已已编辑的的值被数数据源中中的原始始值覆盖盖。然而而,该规规则至

6、少少有一个个主要的的例外,请参阅阅持续使使用大型型 ViiewSStatte。 以下是包包含 IIsPoostBBackk 检查查的一个个典型 Pagge_LLoadd 事件件。BiindGGridd() 是一个个例程,用于导导入并设设置 DDataagriid 的的数据源源,并调调用 DDataaBinnd() 方法法。 Sub Pagge_LLoadd If NNot IsPPosttBacck TThenn BinddGriid() End If End Subb 需要更大大的灵活活性时,仍坚持持使用自自动生成成的列 如果 DDataagriid 所所处的环环境需要要任何一一种特殊殊格式

7、,或是需需要使用用 Daataggridd 中的的其他任任何 WWeb 控件,那么必必须关闭闭 AuutoGGeneeratteCoolummns。将 AAutooGenneraateCColuumnss 属性性的设置置保持为为“Truue”(默认认设置)的做法法,仅在在最简单单的 DDataagriid 方方案中有有效。但但对几乎乎所有实实际的应应用程序序,必须须将该属属性设置置为“Fallse”,并在在 Daataggridd 声明明的 段中中明确地地指定列列。Miicroosofft VVisuual Stuudioo .NNET 用户可可以使用用属性生生成器以以图形化化的方式式创建这这

8、些列。 注意:如如果将 AuttoGeenerrateeCollumnns 的的设置保保持为“Truue”,并且且在 DDataagriid 的的 段段中指定定了列,那么最最终将得得到对列列的重复复设置。系统将将首先显显示特别别声明的的列,随随后是所所有自动动生成的的列。 尝试仅使使用控件件 IDD 来引引用 DDataagriid 项项目中的的控件 许多人没没有认识识到,对对于 DDataagriid 的的 TeempllateeCollumnn 下的的 IttemTTempplatte 中中的控件件(例如如带有“MyTTexttBoxx”ID 的 TTexttBoxx 控件件),不不能在后

9、后面的代代码或是是在 AASPXX 页面面的 段段中用如如下所示示的代码码来直接接调用该该控件: Dim Myvvallue As Strringg = MyTTexttBoxx.Teext 该代码将将导致可可怕的“名称MyTTexttBoxx没有声声明”错误。 因为 DDataagriid 是是由多个个行(项项目)组组成的,所以数数据源中中的每一一行实际际都会有有一个单单独的“MyTTexttBoxx”实例。ASPP.NEET 在在每个控控件的 ID 前面加加上该控控件层次次结构中中每个命命名容器器的 IID,这这样 TTexttboxx 将具具有唯一一的 IID,与与页面中中所有其其他控件

10、件的 IID 都都不相同同。例如如,如果果 MyyTexxtBoox 处处于 DDataaGriid1 中,那那么生成成的 IID 将将是 DDataaGriid1:_cttl2:MyTTexttBoxx。“_cttl2”代表 MyTTexttBoxx 所处处的当前前行。页页面中其其他 MMyTeextBBox 实例的的 IDD 可能能是 DDataaGriid1:_cttl3:MyTTexttBoxx、DaataGGridd1:_ctll4:MMyTeextBBox 等等。要检索索需要查查找的“MyTTexttBoxx”值,需需要对适适当的 DattaGrridIItemm 调用用 Fiin

11、dCConttroll 方法法。该 DattaGrridIItemm 用作作 TeextBBox 的父命命名容器器。 HTMLL: 代码: Sub DattaGrrid11_UppdatteCoommaand(sennderr Ass Obbjecct, _ e Ass DaataGGriddCommmanndEvventtArggs) Dim Myvvallue As Strringg = _ CTyppe(ee.Ittem.FinndCoontrrol(MyyTexxtBoox), TTexttBoxx).TTextt 对 MMyvaluue 执执行操作作 End Subb 对 Fiind

12、CConttroll 调用用的结果果调用 CTyype,将会把把返回值值由 OObjeect 类型强强制转换换成 TTexttBoxx 类型型,以访访问 .Texxt 属属性。 可以(或或应该)使用分分页而没没有使用用 用户未必必希望在在单个页页面上滚滚动查看看成千上上万条记记录。请请确保您您的应用用程序设设计合理理,能够够处理可可能会返返回大量量记录的的情况。有关如如何在 Dattagrrid 中实现现分页的的信息,请参阅阅 Paaginng iin DDataaGriid QQuicckSttartt Tuutorriall。在 Scoott Mittcheell 的文章章 Crreatt

13、ingg a Paggeabble, Soortaablee DaataGGridd 中可可以找到到更多的的信息。 忘记在每每个 DDataagriid 事事件中执执行 .DattaBiind() 调调用,从从而导致致回发 一个常见见的问题题是:“当我点点击 DDataagriid 某某一行中中的 EEditt(编辑辑)链接接时,页页面回发发,且不不包含任任何数据据。这是是什么错错误?”问题在在于数据据仅在页页面第一一次被调调用时绑绑定到网网格。在在每个 Dattagrrid 事件(Ediit、UUpdaate、Canncell、Paage 或 SSortt)中,请确保保设置了了 Daatag

14、gridd 的 Dattasoourcce 属属性(除除非已经经在 声声明中通通过声明明的方式式进行了了设置),并对对 Daataggridd 调用用了 DDataaBinnd() 方法法。 运行时不不必要地地在 DDataagriid 中中动态创创建 DDataagriid 控控件或列列 在某些业业务和技技术方案案中,在在运行时时创建 ASPP.NEET 控控件是必必要的,也是完完全合适适的。例例如,有有时需要要在选择择其他页页面选项项后,才才能在运运行时确确定用户户界面。或是要要创建一一个复合合服务器器控件,其中的的每个子子控件都都需要动动态创建建,因为为无法以以声明的的方式创创建这些些子控件件。如果果遇到这这些情况况,请注注意,提提交页面面时不要要

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 商业计划书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号