ExtJS的.NET控件----YuiGrid(数据绑定、同步/异步取值)

简介:
YuiGrid是ExtJs的.NET控件, 其功能类似标准的GridView控件,又各有所长,本文将简单的介绍下ExtJS的.NET控件中的YuiGrid控件的一些常用功能和实现。   
一、数据准备
     建立数据(MSSQL 2005),字段如下图所示:
            
 二、效果预览
     YuiGrid的界面呈现的效果如下图:
           
     我们还可以点击列进行排序以及动态指定需要显示的列,如下图示:
          
三、数据绑定和取选择行的数据(服务端)
     同标准的GridView一样,使用YuiGrid的DataSource属性和DataBind()方法进行数据绑定,YuiGrid也支持Linq。
 1  private   void  BindGrid()
 2  {
 3      SqlConnection conn  =   new  SqlConnection(ctx.Connection.ConnectionString);
 4      SqlDataAdapter sda  =   new  SqlDataAdapter( " select * from userinfo " , conn);
 5      conn.Open();
 6      DataSet ds  =   new  DataSet();
 7      sda.Fill(ds);
 8       this .YuiGrid1.DataSource  =  ds;
 9       this .YuiGrid1.DataBind();
10      conn.Close();
11  }
     
     获取选择列的数据相比标准控件的Grid来说更加方便,直接使用 SelectedIndexChanged事件就OK,提供了SelectedRowArgs事件来传递数据,通过它直接取相应的属性,如下图我们选择“李四”这一条数据则在右边显示出来。
           
1  protected   void  YuiGrid1_SelectedIndexChanged( object  sender, ExtExtenders.SelectedRowArgs e)
2  {
3      tbName.Text  =  e.SelectedRow[ " Name " ].ToString();
4      tbSex.Text  =  e.SelectedRow[ " Sex " ].ToString();
5      tbAge.Text  =  e.SelectedRow[ " Age " ].ToString();
6      tbMail.Text  =  e.SelectedRow[ " E-mail " ].ToString();
7      tbPhone.Text  =  e.SelectedRow[ " Phone " ].ToString();
8  }

     这里需要注意一点,如果要使YuiGrid能够支持AJAX无刷新的取得选中行的数据 ,则必须为ASPX页面提供ASP.NET AJAX的ScriptManager,并在页面的Page_load里注册YuiGrid为异步方式,并将显示数据区域放置在UpdatePanel里:
< asp:UpdatePanel  ID ="UpdatePanel1"  runat ="server" >
< ContentTemplate >
    
&nbsp; < div >
        
< span > 姓名: < asp:TextBox  ID ="tbName"  runat ="server" ></ asp:TextBox ></ span >< br  />
        
< span > 性别: < asp:TextBox  ID ="tbSex"  runat ="server" ></ asp:TextBox ></ span >< br  />
        
< span > 年龄: < asp:TextBox  ID ="tbAge"  runat ="server" ></ asp:TextBox ></ span >< br  />
        
< span > 电话: < asp:TextBox  ID ="tbPhone"  runat ="server" ></ asp:TextBox ></ span >< br  />
        
< span > 邮件: < asp:TextBox  ID ="tbMail"  runat ="server" ></ asp:TextBox ></ span >< br  />
    
</ div >
</ ContentTemplate >
</ asp:UpdatePanel >
 
     另外要实现上面的选择行取数据还得为YuiGrid委托一个方法(YuiGrid1_SelectedIndexChanged),代码如下:
1  protected   void  Page_Load( object  sender, EventArgs e)
2  {
3      YuiGrid1.SelectedIndexChanged  +=  YuiGrid1_SelectedIndexChanged;
4      ScriptManager1.RegisterAsyncPostBackControl(YuiGrid1);   // 将YuiGrid注册为异步控件
5 
6       //
7  }
 
四、客户端获取选中行的数据
      YuiGrid对客户端的支持是非常强大的,要是整个ExtJS对客户端的支持都很强大,我们可以通过客户端方法取得相应的数据以及进行相应的逻辑操作,比如实现在线编辑等等。在客户端获取YuiGrid里的数据是很简单的,代码如下:
 1  < script type = " text/javascript " >
 2  function  getSelected()
 3  {
 4       var  extender = $find( " YuiGrid1 " );
 5       if (extender == null )
 6      {
 7          setTimeout( " getSelected() " , 50 );
 8           return ;
 9      }
10       var  grid  =  extender.get_Grid();
11       var  row_data  =  grid.selModel.getSelected();
12       if (row_data)
13      {
14           var  row  =  row_data  =  row_data.data;
15           var  userInfo  =   new  Sys.StringBuilder();
16          userInfo.append(String.format( " 姓名:{0} " ,row.Name));
17          userInfo.append(String.format( " 性别:{0} " ,row.Sex));
18          userInfo.append(String.format( " 年龄:{0} " ,row.Age));
19          userInfo.append(String.format( " 电话:{0} " ,row.Phone));
20 
21          alert(userInfo);
22      }
23       else
24      {
25          alert( " 请选择行! " );
26      }
27  }
28  < / script>
 
     除此之外,YuiGrid还支持拖拽、分页、在线编辑、动态分组等等,详细大家可以参考: [url]http://www.extjs.com/[/url] 或 [url]http://extendersamples.rodiniz.com/[/url],关于ExtJS的YuiGrid就介绍这些。
 
本文实例程序下载: 点击这里下载 
下载包里有个 ExtExtenders.dll的文件,封装了多个ExtJS控件,直接添加到vs的工具箱里就OK了。




本文转自 beniao 51CTO博客,原文链接:http://blog.51cto.com/beniao/102302,如需转载请自行联系原作者

目录
相关文章
|
2月前
|
开发框架 JavaScript 前端开发
震撼!破解 ASP.NET 服务器控件 Button 执行顺序之谜,颠覆你的开发认知!
【8月更文挑战第16天】在ASP.NET开发中,通过Button控件实现先执行JavaScript再触后台处理的需求十分常见。例如,在用户点击按钮前需前端验证或提示,确保操作无误后再传递数据至后台深度处理。此过程可通过设置Button的`OnClientClick`属性调用自定义JavaScript函数完成验证;若验证通过,则继续触发后台事件。此外,结合jQuery也能达到相同效果,利用`__doPostBack`手动触发服务器端事件。这种方式增强了应用的交互性和用户体验。
41 8
|
20天前
|
C#
winform .net6 和 framework 的图表控件,为啥项目中不存在chart控件,该如何解决?
本文讨论了在基于.NET 6和.NET Framework的WinForms项目中添加图表控件的不同方法。由于.NET 6的WinForms项目默认不包含Chart控件,可以通过NuGet包管理器安装如ScottPlot等图表插件。而对于基于.NET Framework的WinForms项目,Chart控件是默认存在的,也可以通过NuGet安装额外的图表插件,例如LiveCharts。文中提供了通过NuGet添加图表控件的步骤和截图说明。
winform .net6 和 framework 的图表控件,为啥项目中不存在chart控件,该如何解决?
|
1月前
|
开发框架 JavaScript 前端开发
|
4月前
|
SQL 设计模式 开发框架
.NET异步有多少种实现方式?(异步编程提高系统性能、改善用户体验)
想要知道.NET异步有多少种实现方式,首先我们要知道.NET提供的执行异步操作的三种模式,然后再去了解.NET异步实现的四种方式。
|
5月前
|
SQL 开发框架 JavaScript
分享33个ASP.NET电子商务源码和40个ASP.NET控件组件源码,总有一款适合您
分享33个ASP.NET电子商务源码和40个ASP.NET控件组件源码,总有一款适合您
73 0
|
5月前
|
SQL 开发框架 前端开发
ASP.NET WEB项目中GridView与Repeater数据绑定控件的用法
ASP.NET WEB项目中GridView与Repeater数据绑定控件的用法
77 0
|
5月前
|
开发框架 .NET
Asp.Net就业课堂之模板控件
Asp.Net就业课堂之模板控件
64 1
|
5月前
|
JavaScript C#
【傻瓜级JS-DLL-WINCC-PLC交互】2.wincc使用C#开发的.net控件
【傻瓜级JS-DLL-WINCC-PLC交互】2.wincc使用C#开发的.net控件
96 0
|
5月前
|
JavaScript Linux C#
【傻瓜级JS-DLL-WINCC-PLC交互】1.C#用windows窗体控件创建.net控件
【傻瓜级JS-DLL-WINCC-PLC交互】1.C#用windows窗体控件创建.net控件
135 0
|
5月前
|
开发框架 .NET 数据安全/隐私保护
Asp.Net第二章服务器端控件
Asp.Net第二章服务器端控件
51 0