2016-12-15 77 views
0

我的數據,然後我想找回選定行的值這樣ASP.NET的GridView SelectedRow

string pName = GridView2.SelectedRow.Cells[0].Text; 

我的代碼填充數據網格視圖不幸PNAME變空字符串,我不知道爲什麼。以下是我正在嘗試使用的代碼示例。

protected void Page_Load(object sender, EventArgs e) 
    { 
      DataTable dt = new DataTable(); 
      dt.Columns.AddRange(new DataColumn[2] { new  DataColumn("Id"), new DataColumn("Jmeno") }); 
      dt.Rows.Add("John Hammond", "Canada"); 
      dt.Rows.Add("Rick Stewards", "United States"); 
      dt.Rows.Add("Huang He", "China"); 
      dt.Rows.Add("Mudassar Khan", "India"); 
      GridView2.DataSource = dt; 
      GridView2.DataBind(); 
     } 
    } 

protected void OnSelectedIndexChanged(object sender, EventArgs e) 
    { 
     string pName = GridView2.SelectedRow.Cells[0].Text; 
     Label1.Text = pName; 
    } 

<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="false" 
    OnSelectedIndexChanged = "OnSelectedIndexChanged" 
    AutoGenerateSelectButton="True"> 
    <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" /> 
      <Columns> 
       <asp:BoundField DataField="Id" HeaderText="ID" /> 
       <asp:BoundField DataField="Jmeno" HeaderText="Jmeno" /> 

       <asp:ButtonField Text="Click" CommandName="Select" ItemStyle-Width="30" /> 
      </Columns> 
    </asp:GridView> 

兩個自動生成的選擇並單擊確實TRIGER OnSelectedIndexChanged,但我沒能獲得從小區[指數]的任何值。任何想法如何做到這一點?

+0

您必須設置AutoGenerateColumns =「true」。此外,Cells [0]中沒有任何內容。嘗試設置單元格[1]或單元格[2]。 –

+0

其實它工作!非常感謝你。 – Bendom

回答

1

由阿倫Banik解決

您必須設置的AutoGenerateColumns = 「真」。此外,Cells [0]中沒有任何內容。嘗試設置單元格[1]或單元格[2]。 - Arun Banik

非常感謝。

0

用下面的代碼替換您的OnSelectedIndexChanged函數。由於您的選擇按鈕位於第0個索引位置 string pName = GridView2.SelectedRow.Cells[0].Text;此行代碼將獲取第0個索引中的內容,即SelectButton,因此pName將始終爲空字符串。

protected void OnSelectedIndexChanged(object sender, EventArgs e) 
    { 
     string pName = GridView2.SelectedRow.Cells[1].Text; 
     string Jmeno = GridView2.SelectedRow.Cells[2].Text; 
     Label1.Text = "<b>pName :</b> " + ID + " <b>Jmeno :</b> " + Jmeno; 
    }