Datagrid中动态添加的ButtonColumn为什么不响应ItemCommand事件?

jlhx_NET 2006-02-25 08:13:55
在DataGrid中动态添加了ButtonColumn列,但单击按钮却不能触发ItemCommand事件,郁闷一下午了,各位帮个忙,谢谢了!
...全文
220 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jlhx_NET 2006-02-25
  • 打赏
  • 举报
回复
好不容易搜到了思归的一篇回复,恍然大捂啊,问题解决。
http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=211484
jlhx_NET 2006-02-25
  • 打赏
  • 举报
回复
我的程序里:
Dim xzcolum As ButtonColumn = New ButtonColumn
xzcolum.HeaderText = "选择数据行"
xzcolum.Text = "选择"
xzcolum.CommandName = "Select"
dg_main.Columns.Add(xzcolum)
是设置了CommandName的。顺便说一句,我在静态添加按钮列的时候,ItemCommand能顺利的被触发,而动态添加的按钮列却不行,不知道为什么。刚才我在网上看到了有些帖子说不能在load事件里重新绑定,不然itemcommand无法触发,但我在load事件里什么都没有做,数据绑定是在某个按钮中做的。
bladebengbu 2006-02-25
  • 打赏
  • 举报
回复
在DataGrid的模版列设置中,将CommandName设置,或者直接在ASPX页面中将CommandName属性直接写进去,其实ItemCommand就是完成了委托。。。
bladebengbu 2006-02-25
  • 打赏
  • 举报
回复
需要设置Button的CommandName属性:
例:
ASPX页面中:
<asp:TemplateColumn HeaderText="下载">
<HeaderStyle Width="10%"></HeaderStyle>
<ItemTemplate>
<asp:ImageButton id="I_Case" runat="server" CommandName="download"></asp:ImageButton>
</ItemTemplate>
</asp:TemplateColumn>

在CS页面中,通过DataGrid的ItemCommand事件:
private void dg_AD_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if(e.CommandName == "download")
{
[您的代码]


如此即可
jlhx_NET 2006-02-25
  • 打赏
  • 举报
回复
Private Sub bind(ByVal dt As DataTable)
dg_main.DataSource = dt
dg_main.DataBind()
End Sub

Private Sub btn_boundcolumn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_BoundColumn.Click
dg_main.AutoGenerateColumns = False

.......

Dim xzcolum As ButtonColumn = New ButtonColumn
xzcolum.HeaderText = "选择数据行"
xzcolum.Text = "选择"
xzcolum.CommandName = "Select"
dg_main.Columns.Add(xzcolum)

bind(DirectCast(Session("dataset"), DataSet).Tables("order"))
End Sub
'单击Datagrid中的选择按钮时,下面的事件回调函数不执行,为什么?
Private Sub dg_main_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles dg_main.ItemCommand
Select Case e.CommandName
Case "Select"
dg_main.SelectedIndex = e.Item.ItemIndex
Case .....
End Select
bind(DirectCast(Session("dataset"), DataSet).Tables("order"))
End Sub
Student02370236 2006-02-25
  • 打赏
  • 举报
回复
贴出主要代码...

62,073

社区成员

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

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

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

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