DataList的ItemCommand事件,是由模板里的Button控件触发,所以你那样做不行。
解决办法,就是为使用ClientScript.GetPostBackEventReference方法为模板里的Button生成用户回发页面的脚本,并做为函数传给zConfirm去调用。具体如下:
前台代码:
DataSourceID="SqlDataSource1" onitemcommand="DataList1_ItemCommand"
onitemdatabound="DataList1_ItemDataBound">
DID:
DName:
后台代码:
protected void Page_Load(object sender, EventArgs e)
{
}
protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
LinkButton btn = e.Item.FindControl("LinkButton1") as LinkButton;
if (btn != null)
{
string js = "return zConfirm(function(){" + this.ClientScript.GetPostBackEventReference(btn, null) + ";});";
btn.Attributes.Add("onclick", js);
}
}
protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
{
if (e.CommandName == "dosomthing")
Response.Write(e.CommandArgument.ToString());
}
这个例子的效果可以实现:
第一:显示你的js对话框,第二,触发DataList的ItemCommand事件,然后在后台使用Response.Write将所点击LinkButton对应的DID在页面上显示出来。