我有沒有分頁一個GridView。在包含頁面的Page_Load處理程序中,我從表存儲讀取用戶特定的值並將它們存儲在集合中,以便ObjectDataSource的SelectMethod可以獲取它們。
我想要什麼:
當用戶上傳一個頁面上的一些新的數據在GridView是我想要的GridView控件還顯示新數據舊,而無需再次查詢存儲。
有用的東西:
在Page_Load處理程序中的IsPostBack有助於避免查詢時,該數據仍然在ViewState。在用戶點擊上傳按鈕後,他仍然可以看到舊數據,這要歸功於我猜測的GridView的ViewState。
我嘗試:
我試圖從GridView中導出,讓我自己的用戶控制,以訪問返回一個StateBag的ViewState屬性,但它無法找到顯示在它的用戶數據。它只顯示DataSourceID,_!ItemCount等內容。
我的問題:
如何從一個GridView訪問的ViewState以檢索像代碼背後的列值或DataKeyName值數據。
附加信息:
的問題的答案does gridview save data in viewstate?指出,GridView控件在ViewState中保存數據。
@ user764754你可以發表一些你做過的事嗎?但它聽起來像你只需要再次綁定它。 –
如果我只設置新數據,GridView將不會顯示任何其他內容。如果我將DataBind新數據從ViewState的舊數據丟失。由於我不想在發生PostBack時創建新的查詢,因此我只在代碼後面有新的數據,而舊的數據隱藏在GridView的ViewState中(從最初的Page_Load中)。我明天會發布代碼,謝謝。 – user764754
您可能沒有訪問GridView的ViewState。我現在的解決方案是將查詢的數據存儲在頁面ViewState中。此ViewState用於在回發期間獲取舊數據。舊數據被修改,然後DataBind()被調用並且頁面的ViewState被相應地更新。我還在GridView上設置了EnableViewState =「False」,以避免將數據存儲在頁面的ViewState和GridView的ViewState中。此解決方法有效。我不認爲我現在必須發佈我的舊代碼;) – user764754