Undergod11 Ответов: 0

Получить значение из ASP.NET с GridView в поле на таблицу с нумерацией страниц


Привет,

Я пытаюсь получить значение из текстового поля внутри gridview, которое использует datatable с разбиением на страницы с помощью javascript Datatable.

Он показывает первые 10 строк datatable, хотя внутри gridview есть более 50 строк.

У меня есть текстовое поле для каждой строки, которое, когда вы добавляете в него значение, проверяет, существует ли это значение, а затем добавляет его в базу данных в виде количества.

Мой код работает, однако он может видеть только количество текстового поля текущей страницы пагинации, на которой он находится, а не все значения, как мне это исправить?

Вот мой код:

Dim index As Integer = 0
   Dim row As GridViewRow = gvPartsAvailable.Rows(index)


   For Each oItem As GridViewRow In gvPartsAvailable.Rows

       Dim txt1 As TextBox = CType(oItem.Cells(6).FindControl("txtQty"), TextBox)

       If txt1.Text = "" Then

       Else

           Dim con As SqlClient.SqlConnection
           Dim cmd As SqlClient.SqlCommand
           con = New SqlClient.SqlConnection(System.Configuration.ConfigurationManager.AppSettings("ConnectionString").ToString)
           con.Open()
           cmd = New SqlClient.SqlCommand
           cmd.CommandText = "INSERT INTO [dbo].[tbl_TMGGoodsOrderDetail] ([OrderID], [PartNumber], [Line], [Description], [Description2], [Price], [Quantity]" &
           ") VALUES (@OrderID, @PartNumber, @Line, @Description, @Description2, @Price, @Quantity)"
           cmd.Parameters.AddWithValue("@OrderID", ID)
           cmd.Parameters.AddWithValue("@PartNumber", oItem.Cells(1).Text)
           cmd.Parameters.AddWithValue("@Line", oItem.Cells(2).Text)
           cmd.Parameters.AddWithValue("@Description", oItem.Cells(3).Text)
           cmd.Parameters.AddWithValue("@Description2", oItem.Cells(4).Text)
           cmd.Parameters.AddWithValue("@Price", oItem.Cells(5).Text.Replace("$", ""))
           cmd.Parameters.AddWithValue("@Quantity", txt1.Text)

           cmd.Connection = con
           cmd.ExecuteNonQuery()
           con.Close()

       End If

   Next


Что я уже пробовал:

Мой код работает, однако он может видеть только количество текстового поля текущей страницы пагинации, на которой он находится, а не все значения, как мне это исправить?

Вот мой код:

Dim index As Integer = 0
   Dim row As GridViewRow = gvPartsAvailable.Rows(index)


   For Each oItem As GridViewRow In gvPartsAvailable.Rows

       Dim txt1 As TextBox = CType(oItem.Cells(6).FindControl("txtQty"), TextBox)

       If txt1.Text = "" Then

       Else

           Dim con As SqlClient.SqlConnection
           Dim cmd As SqlClient.SqlCommand
           con = New SqlClient.SqlConnection(System.Configuration.ConfigurationManager.AppSettings("ConnectionString").ToString)
           con.Open()
           cmd = New SqlClient.SqlCommand
           cmd.CommandText = "INSERT INTO [dbo].[tbl_TMGGoodsOrderDetail] ([OrderID], [PartNumber], [Line], [Description], [Description2], [Price], [Quantity]" &
           ") VALUES (@OrderID, @PartNumber, @Line, @Description, @Description2, @Price, @Quantity)"
           cmd.Parameters.AddWithValue("@OrderID", ID)
           cmd.Parameters.AddWithValue("@PartNumber", oItem.Cells(1).Text)
           cmd.Parameters.AddWithValue("@Line", oItem.Cells(2).Text)
           cmd.Parameters.AddWithValue("@Description", oItem.Cells(3).Text)
           cmd.Parameters.AddWithValue("@Description2", oItem.Cells(4).Text)
           cmd.Parameters.AddWithValue("@Price", oItem.Cells(5).Text.Replace("$", ""))
           cmd.Parameters.AddWithValue("@Quantity", txt1.Text)

           cmd.Connection = con
           cmd.ExecuteNonQuery()
           con.Close()

       End If

   Next

F-ES Sitecore

Когда вы просматриваете страницу 1, существуют только элементы управления для этой страницы, элементы управления для других страниц отсутствуют, поэтому они не могут содержать данные. Если вы поместите данные в элементы управления для страницы 1, а затем перейдете на страницу 2, элементы управления, содержащие значения для страницы 1, будут просто выброшены, а для страницы 2 будут созданы новые элементы управления. Если вы хотите запоминать значения при перемещении по страницам, вы Для этого нужно создать какой-то механизм. Вам нужно будет выполнить переход на следующую страницу при отправке формы (например, с помощью LinkButton), и вы запомните все непустые значения в списке или словаре в сеансе и обновите эти данные при перемещении. со страницы на страницу. Когда пользователь выбирает отправку, обрабатываются все данные.

Или вы можете просто оставить все как есть. Когда я нахожусь на” странице 1 “чего-то и перехожу на” страницу 2", я не ожидаю, что что-то, что я ввел на странице 1, все еще будет существовать, поскольку теперь так работает интернет, и люди это знают. Вы можете сделать так, чтобы показать предупреждение, если пользователь внес некоторые изменения в текстовые поля и пытается уйти, сообщая, хотят ли они остаться (используйте для этого событие onunload), и людям нужно будет отправлять изменения по странице за раз ... опять же то, что они привыкли делать.

Undergod11

В этом есть смысл... Спасибо.

Karthik_Mahalingam

возможное решение.

0 Ответов