更优美的jQueryUI部件

许多客户面临这样的场景,他们希望在应用了排序或者过滤之后仍然将最终用户的行选状态保留。通常情况下,当我们在选择了任何行之后应用排序或者过滤会导致回传之后选择状态丢失。本篇博客将讨论我们如何做才能在排序和过滤之后仍然保持选择状态。

在恭城等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供做网站、成都做网站 网站设计制作按需定制开发,公司网站建设,企业网站建设,高端网站设计,成都全网营销推广,成都外贸网站建设公司,恭城网站建设费用合理。

步骤1:将GridView绑定到一张数据表

首先,我们需要将gridview绑定到一个数据表,比如来自Northwind数据库的Categories表。由于我们用的是服务器端的选择,我们需要将AutoGenerateSelectButton属性设置为“True”,然后将“ClientSelectionMode”属性设置为“None”。否则,我们将同时具有客户端和服务器端两个选择。

此外,我们还需要设置AllowSorting以及ShowFilter属性值为“True”以便允许在gridview上执行排序或者过滤。以下是.aspx页面的源代码:

  
 
 
 
  1. AutogenerateColumns="False" AutoGenerateSelectButton="True"
  2. DataKeyNames="CategoryID" DataSourceID="AccessDataSource1"
  3. ShowFooter="False" ShowFilter="True">
  4. ReadOnly="True" SortExpression="CategoryID">
  5. SortExpression="CategoryName">
  6. SortExpression="Description">
  7. SortExpression="Picture">
  8. SortExpression="UserName">
  9. DataFile="~/App_Data/C1NWind.mdb"
  10. SelectCommand="SELECT * FROM [Categories]">

步骤2保存选中的行

我们需要在一个ViewState对象中保存选中行的数据键值,使得我们可以使用它再次设置选择。因此我们需要处理SelectedIndexChanged事件。在此事件中使用到的代码片断如下

步骤3:重新设置选中的行索引

我们需要在排序或者过滤完成,重新执行选择动作之前,重新设置gridviewSelectedIndex属性。这项工作可以在Sorting或者Filtering事件中通过以下代码片断完成:

  
 
 
 
  1. Protected Sub C1GridView1_Sorting(sender As Object, e As C1.Web.Wijmo.Controls.C1GridView.C1GridViewSortEventArgs) Handles C1GridView1.Sorting
  2. ' 重置选择索引
  3. C1GridView1.SelectedIndex = -1
  4. End Sub
  5. Protected Sub C1GridView1_Filtering(sender As Object, e As C1.Web.Wijmo.Controls.C1GridView.C1GridViewFilterEventArgs) Handles C1GridView1.Filtering
  6. '重置选择索引
  7. C1GridView1.SelectedIndex = -1
  8. End Sub

步骤4:重新选中该行

由于gridview会在回传时(由于执行了排序或者过滤时发生)进行了重新绑定,我们需要处理DataBound事件以重新设置选择。在此,我们应当检查原始选中的行是否可见,之后通过ViewState对象对其进行重新选择。代码片断如下所示:

  
 
 
 
  1. Protected Sub C1GridView1_DataBound(sender As Object, e As System.EventArgs) Handles C1GridView1.DataBound
  2. Dim Row As C1GridViewRow
  3. Dim SelectedValue As String = ViewState("SelectedValue")
  4. If SelectedValue Is Nothing Then
  5. Return
  6. End If
  7. ' 检查选中的行是否可见,并且重新对其进行选择。
  8. For Each Row In C1GridView1.Rows
  9. Dim KeyValue As String = C1GridView1.DataKeys(Row.RowIndex).Value
  10. If (KeyValue = SelectedValue) Then
  11. C1GridView1.SelectedIndex = Row.RowIndex
  12. End If
  13. Next
  14. End Sub

请参见附件中完整的示例。

下载示例

Wijmo下载,请进入Studio for ASP.NET Wijmo 2012 v1正式发布(2012.03.22更新)!

责任编辑:张伟
来源: 葡萄城控件技术团队博客 jQuery UI

当前标题:更优美的jQueryUI部件
本文链接:http://www.mswzjz.cn/qtweb/news24/289374.html

攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能