浏览器大全:是一个提供流行浏览器教程、在线学习分享的学习平台!

这个是一个经常见出错

解决办法:

你放在OnItemDataBound中处理,并且判断ItemType为EDIT的时候才做就可以实现你的目标了

原因:

在Edit这个事件中,EditItemTemplate里的控件其实还没建立

他的前提条件是要数据绑定以后,并且要通过OnEditCommand事件才后才能被建立,这也就是为什么Update事件又可以如常操作的原因了

类似的代码如这样

private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
ListItemType itemtype = e.Item.ItemType;

if (itemtype == ListItemType.EditItem)
{
CheckBoxList chk = (CheckBoxList)e.Item.FindControl("chkClientType");

这个就可以达到你的要求了,这个也应该是一个比较标准且完美的处理方式。

关于这个问题,我的朋友飞刀他有另外的一些解决方法,下面我引用他的文章,也可以给你做个参考

(2)FindControl方法的问题

问题:

大家都知道所有控件集合都存在有一个FindControl方法,一般最常用的地方就是DataGrid对Item中控件的操作。这是一个很好用的方法,可以让我们迅速地找到我们想要的控件,但是他也是我遇到过的最不稳定的方法。

在Item中使用这个方法,一般不会出现什么问题,但是在DataGrid、DataList的各种事件中这个方法经常是找不到控件!!DataGrid还好一点,DataList的事件中发生的情况就惨不忍睹,100%的找不到控件!!这个控件是活生生存在的,使用Controls集合中是可以发现这个控件的。这个问题我在Beta2下就已经发现了,原以为微软会在正式版本中更正,不知道是没有人提出呢?还是没有发现,正式版中依然这样。

开始我以为FindControl这个方法没有写好,我就自个重写了这个方法,但是当我高兴地去用我自个写的方法时,发现传回来的值还是null!!!现在也就只有一个解释了,那就是.Net环境中对Control类型的支持还是不稳定的。

解决方法:

即然通过编写方法传回值的方法搞不定,那么就只有用最原始的方法,在本函数内,直接列举Controls集合中的控件,直到找到这个控件为止。

private void ShowQuestion_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
//当返回值为Control类型,经常出现空值

foreach(Control cl in e.Item.Controls)
{
 if(cl.ClientID.IndexOf("OptionalTd1") != -1 cl.ClientID.IndexOf("OptionalTd2") != -1)
 {
foreach(Control clx in cl.Controls)
 {
if(clx.ClientID.IndexOf("Oplbl1") != -1 clx.ClientID.IndexOf("Oplbl2") != -1)
 {
 if(((Label)clx).Text == "")
{
((HtmlTableCell)cl).InnerHtml = "";
}
}
 }
}
}

希望能对你有所帮助

相关软件

2345加速浏览器官方版

2345加速浏览器官方版 | 56.2MB

2345加速浏览器官方版

新一代2345加速浏览器采用Chromium和IE双内核,主打极速与安全特性。基于Chromium深度定制,引入网页智能预加载技术,访问网页更快速..

QQ浏览器官方正式版

QQ浏览器官方正式版 | 49.67MB

QQ浏览器官方正式版

QQ浏览器秉承TT浏览器1-4系列方便易用的特点,但技术架构不同,交互和视觉表现也重新设计,采用Chromium内核+IE双内核,让浏览快速稳定...

百度浏览器最新版下载

百度浏览器最新版下载 | 13.3MB

百度浏览器最新版下载

q百度浏览器,是一款简洁轻快、智能懂你的浏览器。依靠百度强大的搜索平台,在满足用户浏览网页的基础上,它整合百度体系业务优势,带给用户更方便的浏览方式功能...

UC浏览器官方正式版

UC浏览器官方正式版 | 44.2MB

UC浏览器官方正式版

UC浏览器(UC Browser)是UC Mobile Limited在2004年8月开发的一款软件,分uc手机浏览器和uc浏览器电脑版。UC浏览器是全球使用量最大的第三方手机浏览器...

猎豹浏览器2022最新版下载

猎豹浏览器2022下载 | 45MB

猎豹浏览器2022最新版下载

猎豹安全浏览器对Chrome的Webkit内核进行了超过100项的技术优化,访问网页速度更快。其具有首创的智能切换引擎,动态选择内核匹配不同网页...

360安全浏览器官方版下载

360安全浏览器下载 | 21.4MB

360安全浏览器官方版下载

360安全浏览器拥有全国最大的恶意网址库,采用恶意网址拦截技术,可自动拦截挂马、欺诈、网银仿冒等恶意网址。独创沙箱技术,在隔离模式即使访问****也不会感染...