在动态生成列的datagrid里,如果在模板列放了个imagebutton,你在ITEM command里写上IBTN的click时间是出发不了的, 一个解决方法是直接在HTML里放上个onclick("FunctionName"),然后在CS文件里写FunctionName的方法。如下:
html里:
<asp:ImageButton id="ibtDel" onclick="ibtDel_Click" runat="server" ImageUrl="../Images/dgdel.gif"></asp:ImageButton>
cs里: 注意一定要public 不要private
public void ibtDel_Click(object Sender,System.Web.UI.ImageClickEventArgs e)
{
}
这样是解决了促发时间问题, 但如果要取当前行的一些参数, 那就借助imagebutton的CommandArgs来传递。
首先 在ItemDataBound事件里把要传的参数放到CommandArgs,
if(e.Item.ItemType != ListItemType.Header && e.Item.ItemType != ListItemType.Footer)
{
ImageButton ibtDel = (ImageButton)e.Item.Cells[0].FindControl("ibtDel");
ibtDel.Attributes.Add("onclick","javascript:return confirm('你是否真的要删除吗?')");
ibtDel.CommandArgument = e.Item.Cells[1].Text;
}
然后在事件函数里可以用了
public void ibtDel_Click(object Sender,System.Web.UI.ImageClickEventArgs e)
{
string Astid = ((ImageButton)Sender).CommandArgument;
}
Datagrid ImageButton点击事件
本文介绍了一种在ASP.NET datagrid中使用ImageButton时遇到的问题及其解决方案。具体来说,当ImageButton放置于动态生成列中时,如何通过直接在HTML中设置onclick属性并结合CommandArgument属性传递当前行参数来触发事件。
1015

被折叠的 条评论
为什么被折叠?



