我有一個由可編輯文本框組成的GridView。當用戶輸入一個值時,OnTextChanged
函數調用我的UpdateColumns()
方法,該方法執行各種計算並更改整個GridView。我將用戶輸入限制爲僅限數字,以便在用戶在任何單元格中輸入字母字符時操作出錯。出現此錯誤後,我想恢復到用戶輸入字母字符前立即存在的數據表。將當前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()
在一個空的GridView上述結果,作爲gvBuildingBlocks.DataSource
值爲空。還有什麼我可以做得到的價值?
我想我可以遍歷所有行並以某種方式保存如下:
For Each row As GridViewRow in gvBuildingBlocks.Rows
'Save cell value here
Next
但我不知道用什麼樣的代碼保存價值?
任何幫助,非常感謝。
謝謝!
爲什麼不在第一次綁定gridview時設置會話變量? – gaurav 2013-02-18 19:35:48
我其實已經這麼做了。但是如果用戶做出了幾個正確的修改,然後在文本框中意外地輸入了'a'呢?它將恢復到原始數據綁定網格視圖,這將導致數據丟失。 – TimeBomb006 2013-02-18 19:37:30