2016-12-15 8 views
0

Iデータと、私はこの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が解決しよう

あなたは= "true" にAutoGenerateColumnsを設定する必要があります。さらに、Cells [0]には何もありません。セル[1]またはセル[2]を設定してみてください。 - アルンバニーク

ありがとうございました。

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; 
    }