2011-07-11 12 views
1

私は次のコードグリッドビュー選択された行データ

protected void GridView2_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
    if (e.CommandName == "editproject") 
    { 
     string rowindex = e.CommandArgument.ToString(); 
     int index = int.Parse(rowindex); 
     GridViewRow row = GridView2.Rows[index]; 
     Label6.Text = row.Cells[1].Text; 
    } 
} 

によってrowcommandイベントでGridViewコントロールからデータを取得していますが、それは私が得ることができる.how GridViewの行に表示されているフィールドのデータのみを与えるだろう可視ではなくグリッドビューにバインドされているフィールド。

答えて

2

これらの値はクライアント側ではレンダリングされず、サーバー側では取得できないため、非表示に設定した値を取得することはできません。

また、非表示フィールドに値を格納して、非表示フィールドから値を取得することもできます。

+0

を設定します。 –

+0

私は選択された行のdatakeyvalueを取得し、linqクエリを使用してデータベースをクエリし、値を取得できます.i簡単なメソッドがあると思っています –

+0

@saurabh 'DataKeys'は複数の値を保持できます。そこにある列 – V4Vendetta

0

目に見えないバウンド要素を取得することはできますが、データソースから値を取得できます。たとえば、グリッドに割り当てられたデータテーブルにデータを保存します。このデータテーブルをビューステートに保存し、その行のキーと値をデータテーブルで取得

0

グリッドビューでは表示されないコマンドライクなボタンを得ることができます:--- ボタンを誤って表示すると、プロパティを変更する必要がありますdefault.aspx

private void grd_bind() 
{ 
    SqlDataAdapter adp = new SqlDataAdapter("select* from tbbook", ConfigurationManager.ConnectionStrings["cn"].ConnectionString); 

    DataSet ds = new DataSet(); 
    adp.Fill(ds); 
    GridView1.DataSource = ds; 
    GridView1.DataBind(); 
} 

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     LinkButton lk = (LinkButton)(e.Row.Cells[5].Controls[0]); 
     e.Row.Attributes["Onclick"] = ClientScript.GetPostBackClientHyperlink(lk, ""); 
    } 
} 

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    TextBox1.Text = GridView1.SelectedRow.Cells[0].Text; 
    TextBox2.Text = GridView1.SelectedRow.Cells[1].Text; 
    TextBox3.Text = GridView1.SelectedRow.Cells[2].Text; 
    TextBox4.Text = GridView1.SelectedRow.Cells[3].Text; 
    TextBox5.Text = GridView1.SelectedRow.Cells[4].Text; 
} 

でpageディレクティブのEnableEventValidation="False" nはdefault.aspxページでは、その値を取得する方法はありませんEnableEventValidation

<%@ Page Language="VB" EnableEventValidation="false" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %> 
1
private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e) 
{ 
    MessageBox.Show(dataGridView1.SelectedRows[0].Cells[0].Value.ToString()); 
} 
関連する問題