DataGrid中有一个模板列,一个编辑列,我在模版列中加入了LinkButton,但是点击LinkButton却不触发Datagrid_ItemCommand 事件 ,但是点击编辑列中的编辑按钮却会触发Datagrid_ItemCommand 事件 ,这是为生么???
还请高手指点
aspx 文件如下:
<asp:TemplateColumn>
<ItemTemplate>
<asp:Label id="Label26" runat="server" Text=<%# DataBinder.Eval(Container.DataItem, "Cutline24") %>>
</asp:Label>
<asp:LinkButton id="Linkbutton24" runat="server" Text=<%# DataBinder.Eval(Container.DataItem, "Cutline24") %> CommandName="24">
</asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn>
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="更新" CancelText="取消" EditText="编辑"></asp:EditCommandColumn>
设置你linkbutton的commandname为Init
private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if(e.CommandName=="Init")
{
处理语句
}
}
你的事件注册了吗?
你放一个DEL列在上面试试,肯定会执行会台的DATAGRID_DELETECOMMAND.原理一样.
试试:
<asp:ButtonColumn Text=<%# DataBinder.Eval(Container.DataItem, "Cutline24") %> ButtonType="LinkButton" CommandName="24">
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle"></ItemStyle>
</asp:ButtonColumn>
兄弟,前两天我也被这个问题困扰,当然解决得很奇怪,我的代码肯定没问题,但是就是触发不了事件,后来重新开了工程就好了,我觉得是不是我的项目文件出问题了,你也重新建个项目吧,最好在iis上也建一个新的虚拟目录
try
<asp:LinkButton id="Linkbutton24" runat="server" Text=<%# DataBinder.Eval(Container.DataItem, "Cutline24") %> CommandName="item">
commandname包括:item,update,cancel,delete等
请你试一试不要在PostBack之后使用DataGrid的DataBind方法可能就会有响应
我也遇到过这类问题,DataGrid的绑定会阻碍按钮的响应