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还支持拖拽、分页、在线编辑、动态分组等等,详细大家可以参考:http://www.extjs.com/ 或http://extendersamples.rodiniz.com/,关于ExtJS的YuiGrid就介绍这些。

 

本文实例程序下载:点击这里下载 

源代码下在连接:点击这里下载

下载包里有个ExtExtenders.dll的文件,封装了多个ExtJS控件,直接添加到vs的工具箱里就OK了。

注:原创文章欢迎转载,务必注名出处。 出处:http://beniao.cnblogs.com/  或 http://www.cnblogs.com/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、 完善的Web表现层开发包:为企业Web表现层开发人员提供的一套完整、高效、美观的B/S结构设计表现层解决方案,简单易学。 a) 在ExtJs2.X的基础上进行的二次开发与通用接口设计,让繁琐的页面开发简单易行; b) 极大提高企业的项目Web表现层的开发效率; c) 统一企业的项目UI设计,统一的框架结构,能迅速规范企业的Web表现层代码设计规范,最大限度的减轻企业后期的项目管理、维护、升级成本; d) 减少企业Web表现层开发人员的培训投入; 2、 完善的组件开发包:为企业组件开发人员提供的一套完整、稳、高效的B/S结构设计业务逻辑层解决方案。 a) 极大提高企业的项目业务逻辑层组件开发效率; b) 统一的接口规范,能迅速规范企业的业务逻辑层组件代码设计规范,最大限度的减轻企业后期项目管理、维护升级成本; c) 减少企业业务逻辑层组件开发人员的培训投入; 3、 分层结构设计:Efs框架严格按照MVC模式设计开发。 a) 能帮助企业迅速发挥团队开发优势,合理分工协作(能迅速将Web表现层开发,业务逻辑组件开发,系统设计合理分离)。 b) 标准的三层结构模型,为系统的稳、高效运行打下坚实基础。 4、 完善的基础数据库设计: a) 完整的事务、事件管理、用户、单位、角色、权限管理设计,能快速帮助企业在不同的项目中快速完成用户、单位、角色、权限的分配,迅速投入到项目本身的业务系统开发中。 b) 完整的字典管理功能,能方便的对业务系统的全部字典文件进行维护。 c) 标准通用分页查询存储过程设计,为业务系统开发过程中的分页查询提升效率。 d) 灵活稳的编码分配设计,只需要通过配置即可快速实现可满足各种要求的唯一编码。 e) 健全的汉字拼音管理,收录了常用的3万多汉字的全拼与简拼,能迅速完成对汉字的全拼与简拼的翻译处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值