在动态生成列的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;
}