这么做:<ItemTemplate>
<asp:linkButton id="Button1" runat="server" CommandName="aaa">触发Reset_click事件</asp:linkButton>
然后在DataGrid的ItemCommand事件里:
if(e.CommandName=="aaa")
........你的处理程序
<asp:linkButton id="Button1" runat="server" CommandName="aaa">触发Reset_click事件</asp:linkButton>
然后在DataGrid的ItemCommand事件里:
if(e.CommandName=="aaa")
........你的处理程序
谢谢,我照着你的方法做了,可是结果一样,什么也没有触发<asp:linkButton id="Button1" runat="server" CommandName="Test">触发Reset_click事件</asp:linkButton>Private Sub MyDg_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles MyDg.ItemCommand
◎ Response.Write(e.CommandName)'这里设了断点,可是没有进来
End Sub
Super.OnInit(args)
AddHandler Me.ItemDataBound, AddressOf DataBound
....
谢谢,我照你说的方法做了,还是没用啊。
我现在的问题是"linkbutton的模板列触发OnCommand事件的时候,OnCommand事件怎么也无法触发",而ItemDataBound事件我是在控件内部能正常触发的。
然后注意:
在 InitializeComponent()中,一定还得有下面一行this.DataGrid1.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_ItemCommand);我这个是C#语法的,你自己改为VB.net
楼上各位大大:
我似乎找到问题所在,可是还是没办法分析出解决方法
我将控件中的内容全部去掉,只留下下面这一段
<DefaultProperty("EnableHtmlEncode"), ToolboxData("<{0}:MyDatagrid runat=server></{0}:MyDatagrid>")> Public Class MyDatagrid
Inherits System.Web.UI.WebControls.DataGridEnd Class
结果ItemCommand时间可以触发了!然后我加上
<DefaultProperty("EnableHtmlEncode"), ToolboxData("<{0}:MyDatagrid runat=server></{0}:MyDatagrid>")> Public Class MyDatagrid
Inherits System.Web.UI.WebControls.DataGrid
Protected Overrides Sub CreateChildControls()
'中间没有代码
End Sub
End Class
原来的问题又出现了,似乎事件无法触发与CreateChildControls()有关,
请各位大大不吝赐教!
这个问题暂时解决了,最后把createchildcontrol()去掉,把里面逻辑代码移到oninit里,可以触发oncommand事件了,可是还是不明白怎么回事?而且就算CreateChildControl就算里面是空的也不行,一定要完全删掉才行。奇怪?!
揭帖先