DataGrid的FooterTemplate中添Web控件(比如Button)如何响应事件(比如Click)?

heroyu 2003-12-11 03:59:02
可以让DataGrid(System.Web.UI下的那个)的FooterTemplate中添加的Web控件(比如Button)响应事件(比如Click)么?
...全文
48 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
acewang 2003-12-14
  • 打赏
  • 举报
回复
DataGrid提供了编辑方式,这些Command一般都是用来相应特定的按钮
EditCommand &CancelCommand&UpdateCommand
heroyu 2003-12-14
  • 打赏
  • 举报
回复
今次真的非常谢谢上面的各位大哥~ :)
heroyu 2003-12-14
  • 打赏
  • 举报
回复
哦~ 原来这样~ 看来WebForm中的DataGrid与WinForm中的真的有很大不同~
努力学习~!! :)
huangwangman 2003-12-14
  • 打赏
  • 举报
回复
我觉得应该是在datagrid的ItemCommand事件中添加处理代码:
private void DataGrid1_ItemCommand(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if (e.Item.ItemType==ListItemType.Footer)
{
Button btn=(Button)e.Item.FindControl("Button1");
btn.Click+=new System.EventHandler(this.btn_click);//注册
}
}
guan_feng 2003-12-14
  • 打赏
  • 举报
回复
你注意看每一个过程的后面有一个Handels关键字,后面跟了Datagrid对应的事件名称,表示这个过程就是用来处理这个Datagrid的对应事件的
heroyu 2003-12-11
  • 打赏
  • 举报
回复
看来解决这个问题的方法都集中~ 在如何把DataGrid的事件转换为DataGrid中的控件的事件上~ 其实System.Web.UI.WebControl下 ~ DataGrid的那一堆 "XXXCommand"事件令我挺困惑的~
比如 CancelCommand~ DeleteCommad~ SortCommand~ 等等~
它们又不象Windows.Forms中的事件~ 叫"XXClick","XXChange"~ 到底在什么时候会发生~?!
上面的各位高手能给说说么~ :)
heroyu 2003-12-11
  • 打赏
  • 举报
回复
Sorry~!!!!
是我看错了~ acewang() 后来的方法使用的是DataGrid的ItemCreate事件~ 而不是ItemCommandd事件~ 事实上acewang() 后来的第二种方法也是可行的~ 呵呵~ 刚才真的不好意思~! ^-^
heroyu 2003-12-11
  • 打赏
  • 举报
回复
首先谢谢各位~ 我按照 acewang() 和 zsgbox(天心难测) 说的使用自定义CommandName的方法,试过了:
“应当按照acewang() 的方法,设置你按钮的CommandName名称,可自已取,然后在Datagrid的ItemCommand事件中添写代码,判断
if (e.CommandName=="你刚才自己定义的CommandName名称")
{
//do your work
}
其它地方添写按钮都可以这么来”

可以实现~
但后来 acewang() 的
“private void DataGrid1_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if (e.Item.ItemType==ListItemType.Footer)
{
Button btn=(Button)e.Item.FindControl("Button1");
btn.Click+=new System.EventHandler(this.btn_click);//注册
}
}
自己手动写一个:
protected void btn_click(object sender ,EventArgs e)
{
Label1.Text="Hello";
}”
则不行~ btn_click 不会被响应~
liuvb 2003-12-11
  • 打赏
  • 举报
回复
学习
utilities 2003-12-11
  • 打赏
  • 举报
回复
同意楼上的
acewang 2003-12-11
  • 打赏
  • 举报
回复
晕,
1.给Button注册事件:
private void DataGrid1_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if (e.Item.ItemType==ListItemType.Footer)
{
Button btn=(Button)e.Item.FindControl("Button1");
btn.Click+=new System.EventHandler(this.btn_click);//注册
}
}
自己手动写一个:
protected void btn_click(object sender ,EventArgs e)
{
Label1.Text="Hello";
}
acewang 2003-12-11
  • 打赏
  • 举报
回复
sorry:我的是错的!!!
<asp:Button OnClick="Button_click" ....
...
private void Button_click(Object,sender,EventArgs e)
{
//here
}
zsgbox 2003-12-11
  • 打赏
  • 举报
回复
应当按照acewang() 的方法,设置你按钮的CommandName名称,可自已取,然后在Datagrid的ItemCommand事件中添写代码,判断
if (e.CommandName=="你刚才自己定义的CommandName名称")
{
//do your work
}
其它地方添写按钮都可以这么来
vabug 2003-12-11
  • 打赏
  • 举报
回复
楼上的方法!!

http://expert.csdn.net/Expert/topic/2536/2536502.xml?temp=.9641382
momoguagua 2003-12-11
  • 打赏
  • 举报
回复
在绑定DataGrid的时候手动添加
this.Button1.Click += new System.EventHandler(this.Button1_Click);
最好手动设置Button的ID属性的值,然后用你自己设定的ID值代替上面的Button1,要为每一个响应时间的Button都加上上面的事件响应
acewang 2003-12-11
  • 打赏
  • 举报
回复
<asp:Button CommandName="alert" ....
....
DataGrid ItemCommand:
if (e.CommandName=="alert")
{
//do your work
}
heroyu 2003-12-11
  • 打赏
  • 举报
回复
请各位大哥多多指教~ :)
heroyu 2003-12-11
  • 打赏
  • 举报
回复
up ~

62,073

社区成员

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

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

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

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