随笔 - 292  文章 - 38  评论 - 3616  阅读 - 190万

使用RedControls控件RadAjaxPanel、AjaxLoadingPanel实现GridView无刷新翻页和排序

一、本文中涉及到的控件
1、标准控件:GridView
2、RadControls控件:RadAjaxPanel和AjaxLoadingPanel

二、页面布局
     建立ASP.NET应用程序或网站,在aspx页面分别防置一个RadAjaxPanel、AjaxLoadingPanel和GridView控件(将GridView嵌套在RadAjaxPanel控件内部)。

     然后将RadAjaxPanel的LoadingPanelID属性设置为AjaxLoadingPanel控件的ID值便OK。

     下面只需要做好后台的程序工作,一个使用RadControls控件的Ajax功能就完成了。

三、编写程序构造数据及实现排序和分页功能
     1、创建数据

复制代码
 1 private ICollection CreateDataSource()
 2 {
 3     DataTable dt = new DataTable();
 4     DataRow dr;
 5     Random Rand_Num = new Random();
 6 
 7     dt.Columns.Add(new DataColumn("IntegerValue"typeof(Int32)));
 8     dt.Columns.Add(new DataColumn("StringValue"typeof(string)));
 9     dt.Columns.Add(new DataColumn("CurrencyValue"typeof(double)));
10 
11     for (int i = 0; i < 50; i++)
12     {
13         dr = dt.NewRow();
14 
15         dr[0= i;
16         dr[1= "Item " + i.ToString();
17         dr[2= 1.23 * Rand_Num.Next(115);
18 
19         dt.Rows.Add(dr);
20     }
21 
22     DataView dv = new DataView(dt);
23     if (SortExpression != string.Empty && SortExpression != null)
24     {
25         dv.Sort = SortExpression + SortDirection;
26         SwapSortDirection();
27     }
28 
29     return dv;
30 }
复制代码

     2、绑定数据

复制代码
 1 string SortExpression;
 2 
 3 protected void Page_Load(object sender, EventArgs e)
 4 {
 5     if (!IsPostBack)
 6     {
 7         if (SortExpression == "" || SortExpression == null)
 8         {
 9             SortExpression = "IntegerValue";
10         }
11         GridView1.DataSource = CreateDataSource();
12         GridView1.DataBind();
13     }
14 }
复制代码

     3、编写排序方式属性

复制代码
 1 private string SortDirection
 2 {
 3     get
 4     {
 5         if (ViewState["SortDirection"!= null)
 6         {
 7             return (string)ViewState["SortDirection"];
 8         }
 9         else
10         {
11             return string.Empty;
12         }
13     }
14     set
15     {
16         ViewState["SortDirection"= value;
17     }
18 }
19 
20 private void SwapSortDirection()
21 {
22     if (SortDirection == string.Empty || SortDirection == " ASC")
23     {
24         SortDirection = " DESC";
25     }
26     else
27     {
28         SortDirection = " ASC";
29     }
30 }
复制代码

     4、编写排序功能代码

复制代码
1 protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
2 {
3     Thread.Sleep(2000);
4     GridView gv = sender as GridView;
5     SortExpression = e.SortExpression;
6     gv.DataSource = CreateDataSource();
7     gv.DataBind();
8 }
复制代码

     5、编写分页功能代码

复制代码
1 protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
2     {
3         Thread.Sleep(2000);
4         this.GridView1.PageIndex = e.NewPageIndex;
5         GridView1.DataSource = CreateDataSource();
6         GridView1.DataBind();
7     }
复制代码

 

四、类似控件

     RadControls系列控件的RadAjaxPanel和AjaxLoadingPanel主要是用来实现局部刷新及Loading状态,提高用户体验的目的。除此之外我们也可以使用别的技术和控件来实现,ASP.NET AJAX所提供的UpdatePanel和UpdateProgress便是。

posted on   Bēniaǒ  阅读(2307)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述

点击右上角即可分享
微信分享提示