三更半夜了,困惑,求助,早晨起来解决后立即给分。

xiaoge22275 2004-09-05 04:47:35
public void MyDataGrid_Edit(Object Sender, DataGridCommandEventArgs E)
{
Button mybutton = (Button)E.Item.Cells[3].FindControl("UpdateButton"); //**看这句
mybutton.Visible = true; //**看这句
MyDataGrid.EditItemIndex = E.Item.ItemIndex;
DB();
}
-------------------------------------------------------------------------
UpdateButton这个Button是在DataGrid的模版里的,我起初将其Visible设为false,在触发MyDataGrid_Edit事件时将其Visible设为true,可却什么反应都没有。试着再设置其他属性时都没有反应,这是怎么回事呢?我可以保证这一句没有出错:(Button)E.Item.Cells[3].FindControl("UpdateButton");
...全文
118 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
passacaglia 2004-09-05
  • 打赏
  • 举报
回复
放到ItemCreate里面试试:

if(e.Item.ItemType==ListItemType.EditItem)
{
Button mybutton = (Button)E.Item.Cells[3].FindControl("UpdateButton"); mybutton.Visible = true;
}
xiaoge22275 2004-09-05
  • 打赏
  • 举报
回复
谢谢各位的热心帮助,我今天要出去,暂时还没空看。
今晚回来后一定都给分。
谢谢。
haitoo 2004-09-05
  • 打赏
  • 举报
回复
你说UpdateButton这个Button是在DataGrid的模版里的,那它是ItemTemplate里的,还是EditItemTemplate里的?
你单击了Edit按钮以后,选中行中就应该是EditItemTemplate里的的控件,你跟踪执行一下试试,执行了Button mybutton = (Button)E.Item.Cells[3].FindControl("UpdateButton"); 这句以后,mybutton应该还是NULL,
所以我建议你改一下模板列,把要显示的button放到EditItemTemplate中,然后调整一下你这几句的执行次序。
tavor 2004-09-05
  • 打赏
  • 举报
回复
个人认为,如果真的如你所说“没有任何反应”且“(Button)E.Item.Cells[3].FindControl("UpdateButton")”没有错的话,你还是先确定事件的关联是否还存在

再者可试一下(Button)E.Item.FindControl("UpdateButton")

不过,综上,应该是事件没有关联上才对
savagewang1978 2004-09-05
  • 打赏
  • 举报
回复
单看贴出来的代码没有问题
Edison621 2004-09-05
  • 打赏
  • 举报
回复
刚才说错了,Button mybutton = (Button)E.Item.Cells[3].FindControl("UpdateButton");没有错,要是要用到Button的方法的时候就应该再加一对括号,不好意思,没看清。建议还是将其写到先于EditCommand事件执行的事件中。
Edison621 2004-09-05
  • 打赏
  • 举报
回复
Button mybutton = (Button)E.Item.Cells[3].FindControl("UpdateButton"); //**看这句
上面这句应该错了,正确写法应该是:
Button mybutton = ((Button)E.Item.Cells[3]).FindControl("UpdateButton");

还有,最好是写在DataGrid_ItemDataBound等事件中。
hightwise 2004-09-05
  • 打赏
  • 举报
回复
还没起床啊。
xiaoge22275 2004-09-05
  • 打赏
  • 举报
回复
成功了!其他方法我不太懂,受haitoo(haitoo)的启发,我把UpdateButton放进<EditItemTemplate>模版里,其他什么都没有改就行了。
no820824 2004-09-05
  • 打赏
  • 举报
回复
如果你敢肯定:(Button)E.Item.Cells[3].FindControl("UpdateButton");没错的话。

就逐个执行每一行代码。

MyDataGrid.EditItemIndex = E.Item.ItemIndex;
DB();

先注释了。。看看触发MyDataGrid_Edit事件后能不能设置按纽属性。

如果可以,那就是你绑定数据时的问题了。

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧