參考這個 How to get row data by clicking a button in a row in an ASP.NET gridview
你的gridview欄位應該是這樣設定?
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="Button1" runat="server" Text="Button"
OnClick="Button1_Click" />
</ItemTemplate>
</asp:TemplateField>
然後按鍵事件的處理:
protected void Button1_Click(object sender, System.EventArgs e)
{
Button btn = (Button)sender;
// 取得按下按鈕的那一列
GridViewRow gvr = (GridViewRow)btn.NamingContainer;
}
你好,我GridView是轉成樣板沒錯
我語法是這樣
protected void Button1_Click(object sender, EventArgs e)
{
Label LB = (Label)GridView1.Rows[0].FindControl("Label1");
string s_url;
s_url = "B.aspx?name=" + LB.Text;
Response.Redirect(s_url);
}
使用你的語法,gvr 沒辦法帶入Rows[]內
還是你的語法要用別的方式傳值?
我要使用者選取後,取得Label1的值,在把Label1值傳出去
我原本的方式是可以傳值出去,但沒辦法判別使用者在GridView內是選哪個按鈕
既然有了 GridViewRow....那就可以直接這樣用呀
Label LB = (Label) gvr.FindControl("Label1");