У меня есть gridview с 4 столбцами, три из которых являются полями шаблонов, где пользователь может ввести необходимую информацию и нажать кнопку, чтобы отправить ее в базу данных. У меня 2 вопроса:gridview loop issue
Когда я нажимаю мою кнопку, чтобы добавить вторую строку ... данные в первых сообщениях строки
исчезает. Я хочу иметь возможность добавлять строку без первой строки информации , исчезающей для нескольких ситуаций записи записи. Мой код следующим образом:Private Sub SetInitialRow() Dim dts As New DataTable() Dim drs As DataRow = Nothing dts.Columns.Add(New DataColumn("Approval Date", GetType(String))) dts.Columns.Add(New DataColumn("Total Amount", GetType(String))) dts.Columns.Add(New DataColumn("Comments", GetType(String))) dts.Columns.Add(New DataColumn("Initials", GetType(String))) drs = dts.NewRow() drs("Approval Date") = String.Empty drs("Total Amount") = String.Empty drs("Comments") = String.Empty drs("Initials") = String.Empty dts.Rows.Add(drs) ViewState("CurrentTable") = dts gvOLIAdj.DataSource = dts gvOLIAdj.DataBind() End Sub Private Sub AddNewRowToGrid() Dim rowIndex As Integer = 0 If ViewState("CurrentTable") IsNot Nothing Then Dim dtCurrentTable As DataTable = DirectCast(ViewState("CurrentTable"), DataTable) Dim drCurrentRow As DataRow = Nothing If dtCurrentTable.Rows.Count > 0 Then For i As Integer = 1 To dtCurrentTable.Rows.Count 'extract the TextBox values Dim box1 As TextBox = DirectCast(gvOLIAdj.Rows(rowIndex).Cells(1).FindControl("txtAdjAppr"), TextBox) Dim box2 As TextBox = DirectCast(gvOLIAdj.Rows(rowIndex).Cells(2).FindControl("txtAdjAmt"), TextBox) Dim box3 As TextBox = DirectCast(gvOLIAdj.Rows(rowIndex).Cells(3).FindControl("txtCmmts"), TextBox) drCurrentRow = dtCurrentTable.NewRow() drCurrentRow("Approval Date") = box1.Text dtCurrentTable.Rows(i - 1)("Total Amount") = box2.Text dtCurrentTable.Rows(i - 1)("Comments") = box3.Text 'dtCurrentTable.Rows(i - 1)("Initials") = rowIndex += 1 Next dtCurrentTable.Rows.Add(drCurrentRow) ViewState("CurrentTable") = dtCurrentTable gvOLIAdj.DataSource = dtCurrentTable gvOLIAdj.DataBind() End If Else Response.Write("ViewState is null") End If 'Set Previous Data on Postbacks SetPreviousData() End Sub Private Sub SetPreviousData() Dim rowIndex As Integer = 0 If ViewState("CurrentTable") IsNot Nothing Then Dim dats As DataTable = DirectCast(ViewState("CurrentTable"), DataTable) If dats.Rows.Count > 0 Then For i As Integer = 0 To dats.Rows.Count - 1 Dim box1 As TextBox = DirectCast(gvOLIAdj.Rows(rowIndex).Cells(1).FindControl("txtAdjAppr"), TextBox) Dim box2 As TextBox = DirectCast(gvOLIAdj.Rows(rowIndex).Cells(2).FindControl("txtAdjAmt"), TextBox) Dim box3 As TextBox = DirectCast(gvOLIAdj.Rows(rowIndex).Cells(3).FindControl("txtCmmts"), TextBox) box1.Text = dats.Rows(i)("Approval Date").ToString() box2.Text = dats.Rows(i)("Total Amount").ToString() box3.Text = dats.Rows(i)("Comments").ToString() rowIndex += 1 Next End If End If End Sub Protected Sub btnAddNewRow_Click(sender As Object, e As EventArgs) Handles btnAddNewRow.Click AddNewRowToGrid() End Sub
Когда я пытаюсь написать цикл, который будет цикл по каждому из полого шаблона, чтобы захватить данных и поместить его в мою базу данных он не признает, что у меня есть данные в шаблоны полей? Это то, что я пытался до сих пор не дало никаких результатов ...
Protected Sub btn_Update_Click(sender As Object, e As EventArgs) Handles btn_Update.Click For Each row As GridViewRow In gvOLIAdj.Rows For Each gv As GridViewRow In gvOLIAdj.Rows Dim appDt As String = (Rows(rowIndex).Cells(1).FindControl("txtAdjAppr")), TextBox) Dim approvalDt As String = CType(gv.FindControl("txtAdjAppr"), TextBox).Text Dim totalAmt As String = CType(gv.FindControl("txtAdjAmt"), TextBox).Text Dim comments As String = CType(gv.FindControl("txtcmmts"), TextBox).Text Dim intitials As String = DirectCast(gv.FindControl("total"), TextBox).Text Next End Sub
Пожалуйста, отформатируйте свой вопрос, чтобы код был разборчивым. – PaulG
Я делаю, и когда я отправляю изменения, я не уверен, что я делаю ... – developthestars