2011-05-24 31 views
0

啓用SqlDataSource緩存並且服務器從緩存中加載數據時,SqlDataSource.Selected事件不會觸發。如何在數據源緩存打開時對數據綁定控件進行排序

我正在使用選定的方法和SqlDataSourceSelectingEventArgs來排序我的數據,但它有時並不會觸發。

當數據來自緩存時,任何人有任何想法可以用另一種方法進行排序?

Protected Sub sdsSupplies_Selecting(sender As Object, e As System.Web.UI.WebControls.SqlDataSourceSelectingEventArgs) Handles sdsSupplies.Selecting 

     e.Arguments.SortExpression = "SortedColumnID ASC" 

End Sub 

回答

0

如果攔截DataBinding事件會發生什麼?

+0

SqlDataSource DataBinding事件也不會觸發。我有一個綁定到它的Repeater控件,它的事件確實會觸發,但我認爲你不能在那裏排序。我認爲解決方案可能是對SQL端進行排序或不允許緩存。 – 2011-05-24 17:49:04

+0

目前我不在電腦裏。但是SqlDataSource允許選擇參數嗎?將排序設置爲參數可能強制執行新的查詢。 – 2011-05-24 17:55:21

+0

我相信它確實允許,但是你基本上告訴它不要通過改變參數簽名來使用緩存。不妨關閉緩存。就我而言,它在第二次或第三次回傳後恢復爲原始本地行序列。我的排序順序是靜態的,我只是讓IIS排序而不是SQL。 – 2011-05-25 12:46:23

相關問題