2017-06-15 5 views
-1

データをグリッドビューに追加しようとしています。たとえば、ドロップダウンから値を選択した場合、テキストボックスに値を入力してからボタンをクリックします。グリッドビュー。セッションを使用してポストバック中にDataTableのデータを維持する

私は正常にこれを行いましたが、別のテキストを入力して別の値を選択すると、以前のレコードが非表示になり、新しいレコードが表示されます。私は両方のレコードを追加したいと思います。

ループでこれを行う必要がありますか?

Protected Sub pAdd_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles pAdd.Click 

     Dim DT= New DataTable() 
     Dim DR As DataRow = dtbl.NewRow() 
     DT.Columns.Add(New DataColumn("ID")) 
     DT.Columns.Add(New DataColumn("Name")) 
     DT.Columns.Add(New DataColumn("Type")) 

     DR (0) = TEXT_1.Text 
     DR (1) = ddl_name.SelectedItem.Text 
     DR (2) = ddl_type.SelectedItem.Text 
     DT.Rows.Add(drw1) 

     gridv.DataSource = DT 
     gridv.DataBind() 
    End Sub 
+0

を使用して行われています。 'Dim DT = New DataTable()'という行は、毎回新しいデータテーブルを宣言し、それを 'gridv.DataSource = DT'を持つ唯一のデータソースとして設定することを意味しますか?もしそうなら、毎回すべてのデータを置き換えています*。 **グローバル** DataTableを使用してみてください。ドロップダウンから何かが選択されたときに値を追加し続けます。 –

+0

グローバルデータテーブルの使用方法C# –

+0

あなたは完全なコードを共有しますか? –

答えて

0
protected void btnAdd_Click(object sender, EventArgs e) 
    { 

     if (Session["dt"] == null) 
     { 
      dt = new DataTable(); 
      dt.Columns.Add("FirstColumn"); 
      dt.Columns.Add("SecondColumn"); 
     } 
     else 
     { 
      dt = (DataTable)Session["dt"]; 
     } 

     DataRow row = dt.NewRow(); 
     row["FirstColumn"] = text_User.Text; 
     row["SecondColumn"] = ddl_Use.SelectedIndex; 
     dt.Rows.Add(row); 
     Session["dt"] = dt; 
     gv_grid.DataSource = dt; 
     gv_grid.DataBind(); 
    } 
+0

私はボタン上にドロップダウンしていないグリッドにバインドしています –

+0

ボタンクリックで同じコードを書くことができます。どうでもいい。 –

+0

ボタンをクリックするだけでコードを書くことができます。これを公開したくありません。リスト GridData { –

0

私はVBとの良好ではないけど、あなたはC#]をタグ付けされたので、私は助けしようとするでしょう。この

Private Sub AddToGrid() 
    If ViewState("table") IsNot Nothing Then 
     Dim dtable As DataTable = DirectCast(ViewState("table"), DataTable) 
     Dim drow As DataRow = Nothing 
     If dtable.Rows.Count > 0 Then 
      For i As Integer = 1 To dtable.Rows.Count 
       drow = dtable.NewRow() 
       drow("ID") = TEXT_1.Text 
       drow("Name") = ddl_name.SelectedItem.Text 
      drow("Type") = ddl_type.SelectedItem.Text 
      Next 
      dtable.Rows.Add(drow) 
      ViewState("table") =dtable 
      gridv.DataSource = dtable 
      gridv.DataBind() 
     End If 
    End If 
End Sub 
関連する問題