中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > .NET > 临时文章
关于WebForm的编辑列ItemTemplate和EditItemTemplate的一点小总结
作者:未知 时间:2004-11-13 12:12 出处:Blog 责编:chinaitpower
              摘要:暂无

       这两天,发现了好几个类似的帖子在为这个问题发愁,正好今天又来例行公事的加班来了,照样没有什么事情,手一痒痒,决定把这个问题好好整理整理。
       首先,描述一下编辑列到底是如何生成的。
        请注意,在没有点击编辑之前,模板列里面的EditItemTemplate里面的控件没有生成的。当点击编辑的时候,设置this.DataGrid1.EditItemIndex = ........,然后重新绑定Grid,页面PostBack,根据你指定的第i编辑。才会生成对应的第i的编辑模板里面的控件。而这个时候,对应的这个第i行的ItemTemplate里面的控件是不生成的。
         这个我们可以做一个Test 。
         
         上面是一个DataGrid,里面有一个模板列,ItemTemplate里面有一个Label,EditItemTemplate里面有一个DropDownList,下面是后台代码。

        
         页面第一次加载的时候,在事件DataGrid1_ItemDataBound里面设置断点,发现,if(e.Item.ItemType == ListItemType.EditItem)里面的代码根本没有执行。这就说明:页面加载的时候,并没有生成模板列里面的EditItemTemplate的控件。
         然后点击编辑。这个时候,发现if(e.Item.ItemType == ListItemType.EditItem)里面的代码执行了。这就可以证明我们开头的结论。如果这个时候,试图去访问ItemTemplate里面的控件,我们这里是Label1,结果是显然不行的,因为这个控件已经不存在了。
          在ItemDataBond的条件if(e.Item.ItemType == ListItemTypte.EditItem)里面加上代码, label lb = (Label)e.Item.FindControl("Label1");
    if(lb == null)
      this.Page.Response.Write("Null");
      会发现我们的推论是正确的。
              
关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有