[英]The data source does not support sorting
我在VB.NET
擁有一個動態數據LINQ to SQL
ASP.Net網站,並且在對GridView進行排序和實現的搜索例程時遇到了一些麻煩。 在Page_Load
,GridView按字段( Departments.department
)以ASC
順序排序。 但是,當我使用下面的代碼執行搜索時,出現錯誤
數據源不支持排序。
我假設由於DataSource/ID
緣故,當進行搜索后Page_Load
事件嘗試對數據進行排序時,問題就來了。
Dim button = DirectCast(sender, Button)
If button.ID = btnMultiColumnSearchClear.ID Then
txbMultiColumnSearch.Text = [String].Empty
Else
Using Data As New wcPhonesDataContext()
Dim EmployeeNameString As String = txbMultiColumnSearch.Text
Dim SearchResults = Data.Employees.Where(Function(Employees) Employees.Employee.Contains(EmployeeNameString))
GridView1.DataSourceID = ""
GridView1.DataSource = SearchResults
GridView1.DataBind()
End Using
End If
已解決 ,但是現在我遇到了一個新問題,這是我用來解決此問題的代碼...
Dim button = DirectCast(sender, Button)
If button.ID = btnMultiColumnSearchClear.ID Then
txbMultiColumnSearch.Text = [String].Empty
Else
Using Data As New wcPhonesDataContext()
Dim EmployeeNameString As String = txbMultiColumnSearch.Text
Dim SearchResults = Data.Employees.Where(Function(Employees) Employees.Employee.Contains(EmployeeNameString))
GridView1.Sort("", SortDirection.Ascending)
GridView1.DataSourceID = ""
GridView1.DataSource = SearchResults
GridView1.DataBind()
End Using
End If
我創建了一個新錯誤。 如果我執行第二次搜索而沒有返回到Employees表,則會發生這種情況。
“ GridView1”觸發了未處理的事件排序。
如果您使用SqlDataSource並使用數據源ID將gridview連接到數據源,則可以為您神奇地進行排序。 您無需做任何支持。
但是,如果將數據源設置為您在代碼中創建的某個對象,則排序不會神奇地發生。 當用戶單擊列標題時,將觸發OnSorting事件。 您必須編寫代碼來處理該事件。 通常,這意味着按所需順序重新生成數據,或者重新生成數據然后對其進行排序。
例如,如果您使用SQL查詢生成數據,我有時會創建一個運行SQL查詢並返回DataSet的函數。 此函數將sort字段作為參數,並將其粘貼到SQL查詢中。 然后,對於初始顯示調用,此函數以默認排序順序傳遞,對於OnSorting調用,此函數傳遞所需的排序字段。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.