2017-06-15 168 views
-1

我想將數據添加到gridview,例如,如果我們從下拉列表中選擇一個值,在文本框中輸入一個值,然後單擊一個按鈕,然後該數據顯示在一個gridview。使用會話在回發過程中維護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

做我不擅長用VB,但因爲你標記的C#我會盡力幫助。 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

我與使用該

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