作者fumizuki (蒙面加菲狮)
看板Visual_Basic
标题[.NET] GridView.DataSource
时间Tue Feb 17 22:05:36 2009
请输入专案类型(网站专案或者应用程式专案):
Web,Visual Basic 2008(ASP.NET 3.5)
一开始使用 GridView 搭配 LinqDataSource 的情形
LinqDataSource 不支援关联式资料的系结、筛选、排序(似乎是这样?)
於是把 LinqDataSource 换成 DataSet
但这个时候变更 GridView 不支援排序、分页
→由 GridView 'GridView1' 引发但尚未处理的事件 Sorting。
google找到讨论说要自己撰写事件?
试出来的结果:
Protected Sub GridView_Sorting(....) Handles ...
Dim exp As String = ViewState("Sort")
Dim Sort As String = e.SortExpression & " "
If Not exp Is Nothing AndAlso exp.Split(" ")(0).ToLower() = _
e.SortExpression.ToLower() Then
If exp.IndexOf(" ") < 0 Then
Sort += "ASC"
Else
Dim Direction As String = exp.Substring(exp.IndexOf(" ") + 1)
If Direction = "ASC" Then
Sort += "DESC"
Else
Sort += "ASC"
End If
End If
End If
ViewState("Sort") = Sort
ds.Tables(0).DefaultView.Sort = Sort
GridView1.DataBind()
End Sub
但有时候有效,有时候却无效
有时候还会产生错误,什麽未支援Sort的
而且觉得这个方法很不好,每次Sorting 都必须重新系结一次资料
且DataSet必须包含全部的资料,不然怎麽排序都是拿PageSize指定的资料量排序
想问问看有没有人知道要怎麽写比较好?
如果能完全用LinqDataSource来处理是最好
可惜LinqDataSource的Where属性中不能包含关联的资料表:(
--
不使用SqlDataSource,是因为SqlDataSource,不管是换页或是排序,或是其他要求
都要抓全部的资料来处理,资料量大效能就非常差,之前吃过一次苦头了=_=
--
▃▅▇▆▄ ▆▂▃ `
逝去感情如何能留住,半点痴情遗留殊不易,██▅▇▄▃ ▇▃▂" .
█████████▃i ▁▄▇
更多凄凄惨惨的遭遇…………██▆▃ █▅▆▃ˍ▄*
◢ ▂█▄▇▅▂▌.
我不知道,王~八~蛋~~! ▂▆███ █▄▃ 。fumizuki。Check。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.194.106.250
※ 编辑: fumizuki 来自: 123.194.106.250 (02/17 22:06)
※ 编辑: fumizuki 来自: 123.194.106.250 (02/17 22:06)