2013-01-04 60 views
2

我想將一個控件作爲Gridview的TemplateFeilds中的列,並且不應該隱藏。每列的末尾都有一個按鈕。我的問題是,我應該使用什麼控件,以及如何獲取GridView中按鈕被點擊的那一列的特定行的值。獲取gridview列的值

回答

2

您應該使用HiddenFieldGridView列,因爲控制不會成爲可見,從而滿足您的要求。 後面的代碼將GridView控件的行命令內

public void gdView_RowCommand(object sender, GridViewCommandEventArgs e) 
     { 

      if (e.CommandName == "sendvalue") 
      { 

       for (int i = 0; i < gdView.Rows.Count; i++) 
       { 
        int getrow = Convert.ToInt32(e.CommandArgument); 

        HiddenField HiddenField1 = (HiddenField)gdView.Rows[getrow].FindControl("HiddenField1"); 
} 
} 

其中e.CommandName ==「sendvalue」,是因爲巴頓的atrribute命令 名稱設置爲「sendvalue」

HiddenField設計會隨着

<asp:HiddenField ID="HiddenField1" runat="server"/> 
+0

thnx它爲我工作 – user1947927

+1

最受歡迎@user 1947927 – Himanshu

2

在模板中使用隱藏字段。

2

您可以通過設置CommandArgument財產,將被點擊的按鈕,期間行數據綁定所需的值改變你的方法。

3

你想獲得什麼價值?

您可以處理按鈕的單擊事件,並將sender投射到Button及其NamingContainerGridViewRow。然後,您只需找到該行中的所有其他控件即可。

protected void Button1_Clicked(Object sender, EventArgs e) 
{ 
    // get the button reference 
    Button btn = (Button) sender; 
    GridViewRow row = (GridViewRow) btn.NamingContainer; 
    // assuming the primary key value is stored in a hiddenfield with ID="HiddenID" 
    HiddenField hiddenID = (HiddenField) row.FindControl("HiddenID"); 
    int id = int.Parse(hiddenID.Value); 
} 

ASPX(GridView的模板列)

<asp:Button ID="Button1" runat="server" Text="Click Me" OnClick="Button1_Clicked"/> 
<asp:HiddenField ID="HiddenID" runat="server" Value='<%# Eval("PrimaryKeyField") %>'/> 
+1

+1使用NamingContainer。 – Adil