ユーザーがASP.Net GridViewコントロールを使用して大量のデータを入力できるようにしようとしています。私が作成しようとしている影響は、GridViewコントロールをスプレッドシートのように動作させることです。ユーザーは自由にデータとタブを列から列に、行ごとに入力することができます。ユーザーは、ページの下部にあるボタンを使用して、必要に応じて行を追加できます。フォームの下部には、必要に応じて保存するためのボタンもあります。DataTableをASP.Net GridViewコントロールにバインドする際の問題
これを行うには、空の行がたくさんあるDataTableを作成し、GridViewにバインドしました。 GridViewの列は、テキストボックスを含むテンプレート列です。したがって、ページが開くと、実際にはスプレッドシートのように見えます。ユーザーが行追加ボタンを押すと、GridViewがバインドされているDataTableに10行追加するだけで、魅力的に機能します。
私が取り組んでいる問題は、ユーザーが入力したデータを読み込むことです。ユーザーがページングリンクまたは更新ボタンを押すと、ユーザーが入力したデータでDataTableを更新したいと思います。これは私が持っているものです。
Private Sub UpdateDataTable()
Dim objCatRow As clsCategoriesRow = Session("gvCategoriesRow")
Dim drQuery() As DataRow = Nothing
Dim drRow As DataRow = Nothing
Dim objRow As GridViewRow = Nothing
Dim intRecNo As Integer = 0
Dim txt As TextBox = Nothing
Dim lbl As Label = Nothing
'Loop through all of the rows in the grid view control
For Each objRow In Me.gvCategories.Rows
'Get the label that contains the identity column
lbl = objRow.Cells(GridColumns.Category).FindControl("lblItemRecNo")
intRecNo = lbl.Text
'Update the datarow bound to this grid view row
'First, query the datarow from the data table
drQuery = objCatRow.Table.Select("recno = " & intRecNo)
'Make sure our query returned a row
If Not IsNothing(drQuery) AndAlso drQuery.Count > 0 Then
'Get the value from the textbox in the grid view
txt = objRow.Cells(GridColumns.Category).FindControl("txtItemCategory")
'Upadte the data row with the value the user entered
'THE VALUE IN txt.Text IS EMPTY. HOW CAN I GET THE VALUE THE USER TYPED IN?
drQuery(0)("Category") = txt.Text
'Get the value from the textbox in the grid view
txt = objRow.Cells(GridColumns.SortORder).FindControl("txtItemSortOrder")
'Upadte the data row with the value the user entered
drQuery(0)("sortorder") = txt.Text
End If
Next
End Sub
問題は、これはユーザが入力した内容を返すされていないということである。ライン
TXT = objRow.Cells(GridColumns.Category).FindControl( "txtItemCategory")
返すAテンプレート化された列のテキストボックスへの参照。しかし、以前の値、つまりユーザーが入力した値ではなく、ビューステートの値が含まれます。
ユーザーがグリッドに入力した値を取得するにはどうすればよいですか?
各行にEDITボタンとUPDATEボタンを追加する方法を知りたいと思います。私はそうすることを避けたいと思います。私のユーザーは、膨大な数のデータを入力する必要があり、その方法ではアプリケーションを使用できなくなります。事前に
おかげで、
マイク
上記のコードでは、Page.Request.Form.Item(key)またはPage.Request.Form(key)を使用してキーの値を取得します。 「キー」は文字列です。 – fenone
これは私にとって素晴らしい仕事でした!ありがとう! – Mikutus