2017-08-17 1 views
0

私は、Webフォームを使用してSQLデータベースからデータを取得し、データテーブルを作成し、そのデータテーブルを使用してGridviewにデータを格納します。USe Gridviewからの値

検索ボタンが押されたときに SQLクエリは、その後のDataTable(GT1)にデータソースを設定し、実行するGridViewを取り込むためのコード

GT1.Load(SCDR); 
      EntryGrid.ShowHeaderWhenEmpty = true; 
      EntryGrid.DataSource = GT1; 
      EntryGrid.DataBind(); 
      EntryGrid.EditIndex = 0; 
      EntryGrid.DataBind(); 

私はもともとただ移入するためにGridViewコントロールを使用するつもりでした一連の変数とそれらを使用してSQLクエリを生成しますが、EntryGrid.Rows[0].Cells[2].Textは空の文字列を生成します。
row.Cells[4].Text returns nothing in GridView1_SelectedIndexChanged? FindControl(「コントロールID」)の使用について話していますが、これを見るともっと混乱してしまいました。コントロールIDを見つけるにはどうすればいいでしょうか?また、グリッドビュー内の特定のセルから文字列変数に値を取得するために必要なことは何ですか? GridViewのは、次のコード

DataTable GT1 = new DataTable(); 
protected void Button1_Click(object sender, EventArgs e) 
    { 

     string SqlQuery1 = sql.Replace("LASTNAME_", LastnameBox.Text); 
     SqlQuery1 = SqlQuery1.Replace("LAST4_", PAsswordBox.Text); 




     SqlConnection Conn1 = new SqlConnection(DC1.DbConn); 
     Conn1.Open(); 
     SqlCommand SearchCommand = new SqlCommand(SqlQuery1, Conn1); 
     SqlDataReader SCDR = SearchCommand.ExecuteReader(); 


     GT1.Load(SCDR); 
     EntryGrid.ShowHeaderWhenEmpty = true; 
     EntryGrid.DataSource = GT1; 
     EntryGrid.DataBind(); 
     EntryGrid.EditIndex = 0; 
     EntryGrid.DataBind(); 
} 

答えて

0

によって移入され

コントロールIDを使用すると、TemplateField内アイテムのごそれぞれに設定されたIDです。次に、FindControlを使用してラベルから情報を取得し、VarFromGridに格納する例を示します。行はRowSelectedによって取得されます。どのように行を取得したいのか分かりませんが、それはそれを行う1つの方法です。

ASPXコード:後ろ

<asp:Label ID="LabelGridViewBankName" runat="server" Text="something"></asp:Label> 

コード:

GridViewRow row = GridView1.SelectedRow; 
string VarFromGrid = row.Cells[4].FindControl('LabelGridViewBankName').Text; 

EDIT:

あなたはその後、行をつかむ以下のように、そこからデータを取得しGridViewRowを使用することができます。あなたはfindコントロールを必要とすべきではありません。

GridViewRow row = (GridViewRow)EntryGrid.SelectedItems[0]; 
string something = row.Cells[0].Text; 

グリッド行がヌルでないか、ヌル例外が発生することを忘れないでください。一度やりとりした接続文字列を閉じます。私はまだ空の文字列を返し、デバッグモードであなたのdataTableを見て、データがどのように格納されているかを見てください。

+0

は、 'LabelGridViewBankName'が列のラベルになっていますか? GridViewには、DataSourceとして使用しているデータテーブルによって動的にデータが格納されている列があり、DataTable.Load(SqlDataReader)を実行したときにdataTableにColumnsが追加されました –

+0

最新の試みは私に 'Text'の定義が含まれていて、 'Control'タイプの最初の引数を受け入れる拡張メソッド 'Text'がありませんでした(usingディレクティブまたはアセンブリ参照がありませんか?) –

+0

コードをさらに投稿できますか?あなたのグリッドが作成されている場所とあなたの列が好きですか? – Pintang

関連する問題