2009年1月7日 星期三

在GridView,針對Button的設定

使用GridView時,針對Button的設定,如果只需一個參數就好解決,但遇到要多個參數就有點麻煩了,經過這段時間的磨練,有兩種方式可以設定,紀錄一下

第一種
.aspx
GridView
< id="btn_Delete" runat="server" text="刪除" onclick="Del_Click">

.cs
GridView_RowDataBound
if (e.Row.RowType == DataControlRowType.DataRow)
Button btn_Delete = (Button)e.Row.FindControl("btn_Delete"); btn_Delete.Attributes.Add("OnClick", "if (confirm('您確定要刪除嗎?')==false) {return false;}");
btn_Delete.Attributes["id"] = DataBinder.Eval(e.Row.DataItem, "id").ToString();
btn_Delete.Attributes["sn"] = DataBinder.Eval(e.Row.DataItem, "sn").ToString();


protected void Del__Click(object sender, EventArgs e)
{
Button btnDel = (Button)sender;
string id= btnDel.Attributes["id"].ToString();
string sn= btnDel.Attributes["sn"].ToString();

//其他作業
}


第二種
.cs
GridView_RowDataBound

if (e.Row.RowType == DataControlRowType.DataRow)
Button btn_Delete = (Button)e.Row.FindControl("btn_Delete");
btn_addsub.CommandName = "Delete";
btn_addsub.CommandArgument = string.Format("{0},{1}", DataBinder.Eval(e.Row.DataItem, "id"), DataBinder.Eval(e.Row.DataItem, "sn"));


GridView_RowCommand
switch (e.CommandName)
{
case "Delete":
string[] aString = Convert.ToString(e.CommandArgument).Split(',');
btnDelete(aString[0], aString[1]);
break;
}


private void btnDelete(string id, string sn)
{
}

沒有留言: