本文将介绍ExtJs的.NET控件YuiGrid分页机制和在线编辑功能.
一、分页
YuiGrid的分页机制不是很强大,内置有两种分页样式,下图便是其中的一种.
本示例代码是借鉴于YuiGrid源代码中的测试案例的代码,使用MSSQL2005数据库,下面为分页查询的代码:
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->
1publicstaticDataTableGetPagedMovies(stringsort,intoffset,intpage_size,stringdir)
2{
3SqlConnectioncon=newSqlConnection();
4con.ConnectionString=ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
5con.Open();
6
7
8offset=offset/page_size;
9
10offset+=1;
11//querythatgetsonlytherecordsneededtothepage
12//usingthenewROW_NUMBERfunctioninsql2005
13stringsql="WITHMOVIESAS("+
14"SELECTROW_NUMBER()OVER"+
15"(ORDERBY"+sort+""+dir+")ASRow,"+
16"ID_MOVIE,TITLE,RATING,VOTES,YEAR,GENRE"+
17"FROMTB_MOVIE)"+
18"SELECTID_MOVIE,TITLE,GENRE,RATING,VOTES,YEAR"+
19"FROMMOVIES"+
20"WHERERowbetween(@PageIndex-1)*@PageSize+1and@PageIndex*@PageSize";
21
22SqlCommandcmd=newSqlCommand(sql,con);
23//addtheparameterstothequerytograbthecorrectpage
24cmd.Parameters.AddWithValue("@PageIndex",offset);
25cmd.Parameters.AddWithValue("@PageSize",page_size);
26SqlDataAdapteradapt=newSqlDataAdapter(cmd);
27DataSetds=newDataSet();
28adapt.Fill(ds);
29//closestheobjectsanddisposes
30
31//GetMovieCount(ds);
32con.Close();
33cmd.Dispose();
34con.Dispose();
35returnds.Tables[0];
36}
代码实现上很简单,有了上面的分页查询,下面只需要在Page_load里将数据进行绑定就OK了.
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->1protectedvoidPage_Load(objectsender,EventArgse)
2{
3if(!IsPostBack)
4{
5intpage_size=10;//defaultpagesize
6intoffset=1;//defaultpage
7stringsortCol,sortDir;
8if(string.IsNullOrEmpty(Request["sort"]))
9{
10sortCol="ID_MOVIE";
11sortDir="ASC";
12}
13else
14{
15sortCol=Request["sort"];
16sortDir=Request["dir"];
17}
18if(!string.IsNullOrEmpty(Request["limit"]))
19{
20page_size=int.Parse(Request["limit"]);
21offset=int.Parse(Request["start"]);
22}
23
24
25YuiGrid1.TotalRecords=Movie.GetMovieCount();
26YuiGrid1.DataSource=Movie.GetPagedMovies(sortCol,offset,page_size,sortDir);
27YuiGrid1.DataBind();
28}
29}
二、在线编辑
在实现YuiGrid的在线编辑,首先需将其EnableEdit属性设为True,然后通过CellEdited事件来做数据库更新操
作。其实更新数据库无非就是将当前行的数据取出来,然后执行一条相应的SQL就OK,这里的重点应该是取数据,在标准GridView里通常都是通过命令
参数来搞定的,YuiGrid不同的是通过他自己的事件传递的对象属性来获取,如下:
大致如下图:
YuiGrid里可以非常方便的嵌入ListBox或DropDownList等控件,只需要在外部任意定义一个
DropDownList控件,然后将YuiGrid对应列的EditControlId属性设置为该控件ID就OK了。如下代码遍上上图的完整定义:
Code
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->1<cc1:YuiGridID="YuiGrid1"runat="server"EnableRowSorting="true"Width="550px"
2EnablePaging="true"PagingStyle="NavBar"EnableEdit="true"OnCellEdited="YuiGrid1_CellEdited"SelectMultiple="true">
3<Columns>
4<cc1:ColModelheader="ID_MOVIE"dataIndex="ID_MOVIE"hidden="true"/>
5<cc1:ColModelheader="MovieTitle"dataIndex="TITLE"sortable="true"width="230"allowBlank="false"maxLength="40"/>
6<cc1:ColModelheader="Votes"dataIndex="VOTES"sortable="true"width="90"DataType="Numeric"/>
7<cc1:ColModelheader="Rating"dataIndex="RATING"sortable="true"width="60"DataType="Numeric"/>
8<cc1:ColModelheader="Year"dataIndex="YEAR"sortable="true"width="60"EditControlId="cboYear"/>
9<cc1:ColModelheader="Genre"dataIndex="GENRE"sortable="true"width="120"EditControlId="cboGenre"/>
10
11</Columns>
12</cc1:YuiGrid>
13
14<asp:DropDownListID="cboGenre"runat="server"CssClass="x-hid">
15<asp:ListItemText="Action"Value="Action"></asp:ListItem>
16<asp:ListItemText="Adventure"Value="Adventure"></asp:ListItem>
17<asp:ListItemText="Animation"Value="Animation"></asp:ListItem>
18<asp:ListItemText="Comedy"Value="Comedy"></asp:ListItem>
19<asp:ListItemText="Crime"Value="Crime"></asp:ListItem>
20<asp:ListItemText="Documentary"Value="Documentary"></asp:ListItem>
21<asp:ListItemText="Drama"Value="Drama"></asp:ListItem>
22<asp:ListItemText="Family"Value="Family"></asp:ListItem>
23<asp:ListItemText="Fantasy"Value="Fantasy"></asp:ListItem>
24<asp:ListItemText="Horror"Value="Horror"></asp:ListItem>
25<asp:ListItemText="Independent"Value="Independent"></asp:ListItem>
26<asp:ListItemText="Musical"Value="Musical"></asp:ListItem>
27<asp:ListItemText="Mystery"Value="Mystery"></asp:ListItem>
28<asp:ListItemText="Noir"Value="Noir"></asp:ListItem>
29<asp:ListItemText="Romance"Value="Romance"></asp:ListItem>
30<asp:ListItemText="Sci-Fi"Value="Sci-Fi"></asp:ListItem>
31<asp:ListItemText="Thriller"Value="Thriller"></asp:ListItem>
32<asp:ListItemText="War"Value="War"></asp:ListItem>
33<asp:ListItemText="Western"Value="Western"></asp:ListItem>
34</asp:DropDownList>
关于ExtJS的.NET控件YuiGrid的分页和在线编辑就介绍这些,详细大家可以访问http://extendersamples.rodiniz.com或下载下面提供的示例代码了解更多。
示例代码下载
分享到:
相关推荐
将extjs api打包成.net控件,大大降低了extjs的使用难度,ajax 实现,适合用于开发各种系统和后台,其界面效果绚丽十足,极力推荐。最新0.6版本增加了大量的新控件,包括extjs的gridpanel。安装目录下包含源程序。 ...
### ExtJS .Net 分页示例详解 #### 标题:ExtJS .Net分页例子 根据提供的标题“ExtJS .Net分页例子”,本文将详细介绍如何在.NET平台下使用ExtJS实现数据分页功能。ExtJS是一款强大的JavaScript库,用于构建复杂的...
**ExtJS的.NET控件_YuiGrid:数据绑定与同步/异步取值详解** 在Web开发中,ExtJS是一个强大的JavaScript库,用于构建富客户端应用程序。YuiGrid是ExtJS的一个组件,提供了灵活的数据展示和操作功能。本文将深入探讨...
- **16GridPanel2.rar**:展示了一个增强的网格面板,可能包括了行编辑、分页等功能,与.NET的数据库操作相结合,实现了动态数据加载和编辑。 - **29ComboBoxTree.rar**:组合框与树形视图的结合,可能用于下拉...
ExtJs常用布局--layout详解实例代码: ExtJs常见的布局方式有:border、form、absolute、column、accordion、table、fit、card、anchor 另外,不常见的布局有:tab、vbox、hbox 具体使用方法可见该文件的案例代码。 ...
这篇“ExtJS笔记——Grid实现后台分页”探讨了如何在ExtJS的Grid组件中实现高效的后台分页功能。 后台分页是一种常见的数据处理策略,特别是在大数据量的情况下,它将数据分批加载,避免一次性加载所有记录导致的...
非传统分页工具. 简单说明下: 显示第一页与最后一页. 显示当前页对称的前后几页(可以自定义显示多少页). 其它的页码省略. 点击省略号, 省略号隐藏, 显示一个与省略号相同宽度的页面跳转转入框. 整个设置还比较智能....
标题“ExtJS Oracle分页---Json转换”涉及的是在Web应用程序开发中,使用ExtJS框架与Oracle数据库进行分页数据交互,并通过Json格式进行数据转换的技术。以下是对这个主题的详细解释: ExtJS是一个强大的JavaScript...
ExtJS UI控件是用于构建丰富、交互性强的Web应用程序的JavaScript库,它与ASP.NET 3.5结合使用,可以为开发人员提供强大的前端开发工具。在ASP.NET 3.5框架下,ExtJS控件能帮助开发出具有桌面应用般体验的网页应用。...
Extjs DateField控件 - 只选择年份(找了很久发现网上只有选择年月的控件,于是基于extjs年月控件设计了只选择年份的控件)
非传统分页工具. 简单说明下: 显示第一页与最后一页. 显示当前页对称的前后几页(可以自定义显示多少页). 其它的页码省略. 点击省略号, 省略号隐藏, 显示一个与省略号相同宽度的页面跳转转入框. 整个设置还比较智能....
licensing@extjs.com http://extjs.com/license Open Source License Ext is licensed under the terms of the Open Source GPL 3.0 license. http://www.gnu.org/licenses/gpl.html There are several FLOSS ...
extjs-620-docs官方文档extjs-620-docs官方文档extjs-620-docs官方文档
而Coolite则是针对.NET平台的一个控件集,它将EXTJS的功能集成到.NET环境中,使得.NET开发者可以方便地在ASP.NET应用中使用EXTJS组件。 标题提到的"基于EXTJS的.NET控件Coolite 1.0 example示例源码"是一个用于教学...
本篇我们将聚焦于ExtJS中的一个特定控件——带分页的LOV(Look Up Value)Combo,它结合了Combobox和分页功能,方便用户在大量的数据中选择值。 LOV Combo(Look Up Value ComboBox)是ExtJS中的一种复合控件,它的...
语言程序设计资料:ExtJs学习笔记-2积分.doc
FineUI(开源版)基于 ExtJS 的开源 ASP.NET 控件库。 FineUI的使命 创建 No JavaScript,No CSS,No UpdatePanel,No ViewState,No WebServices 的网站应用程序。 支持的浏览器 IE 8.0 、Chrome、Firefox、...
FineUI(开源版)基于 ExtJS 的开源 ASP.NET 控件库。FineUI的使命创建 No JavaScript,No CSS,No UpdatePanel,No ViewState,No WebServices 的网站应用程序。支持的浏览器IE 8.0+、Chrome、Firefox、Opera、...
"extjs-theme-bootstrap" 是针对 EXTJS4 的一个主题,它借鉴了 Bootstrap 的设计风格,让 EXTJS4 应用程序具有更加现代化和一致的外观。 Bootstrap 是一个流行的前端开发框架,由 Twitter 推出,主要用于构建响应式...
FineUI 是一款专为 ASP.NET 平台设计的专业控件库,它基于流行的 JavaScript 框架 ExtJS 构建,旨在为 ASP.NET 开发者提供强大而易用的界面组件。这款控件库在设计时充分考虑了 ASP.NET 的开发模式和习惯,确保...