編集可能なテキストボックスで構成されるGridViewがあります。ユーザーが値を入力すると、OnTextChanged
関数はmyUpdateColumns()
メソッドを呼び出します。このメソッドは、さまざまな計算を実行し、GridView全体を変更します。ユーザー入力を数字のみに制限しているため、ユーザーが任意のセルに英字を入力すると操作がエラーになります。このエラーが発生した場合、ユーザーが英字を入力する直前に存在していたデータテーブルに戻したいと思います。
現在のGridViewのデータソースをキャプチャしてDataTableに保存する方法はありますか?
私は次のことを試しました(データテーブルがバインドされた後):
Dim dt As DataTable = DirectCast(gvBuildingBlocks.DataSource, DataTable)
Session("buildingBlocks") = dt
'If textboxes are all numeric, perform calculations here
'Else display error here and bind table below
gvBuildingBlocks.DataSource = CType(Session("buildingBlocks"), DataTable)
gvBuildingBlocks.DataBind()
上記では、の値gvBuildingBlocks.DataSource
が空であるため、グリッドビューが空になります。値を取得するために他にできることはありますか?
次のように、すべての行をループして保存することができると思います。
For Each row As GridViewRow in gvBuildingBlocks.Rows
'Save cell value here
Next
しかし、値を保存するためにどのコードを使用すればよいかわかりませんか?
どんな助けでも大歓迎です。
ありがとう!