2010-06-04 123 views
1

我正在使用C#,ASP.NETGridview編輯後排序ASP.NET

我有一個我已經提供了排序,編輯功能的GridView。我執行排序時無法執行編輯。排序後編輯設置在其他行。我認爲有一些問題,它走的是指數..

任何一個可以幫助我如何解決這個..

問候 sbmarya

回答

0

我認爲這個問題是,排序是通過與編輯不同的通話/數據通話。所以在RowEditing事件中,我得到了相對於排序順序(ASC()或DESC())的索引。但後來我使用getUsers()綁定,它以不同的順序返回數據。

我所做的是我在ViewState中存儲了一些標誌(值),以表明我在編輯事件中綁定時使用的排序順序,以便我可以調用正確的方法返回相同的數據源。

問候, sbmarya

0

我面對這個問題爲好。這是我如何修復它。 (在我的例子中,gridview在一個名爲submit date的列上排序)。

a。當gridview的底層dataTable被crated並排序時,它將它存儲在一個會話變量中。訣竅是,在存儲到會話變量之前,請確保存儲已排序的視圖。

     dt.DefaultView.Sort = "Submit Date" + " " + "DESC"; 
         GridView1.DataSource = dt; 
         GridView1.DataBind(); 
         Session["gridViewData"] = dt.DefaultView.ToTable(); //Only storing dt will not have the sorted table stored in session. 

b。接下來,使用上述步驟中存儲在session中的dataTable執行所有編輯/更新操作。它將始終以正確的排序順序出現,並且在更新後您不會看到行索引意外更改的問題。