ASP.NETDataGrid高级使用技巧
- 格式:ppt
- 大小:827.00 KB
- 文档页数:45
datagrid控件DataGrid控件DataGrid控件是一种常用的用户界面控件,用于以表格形式显示和编辑数据。
它是很多图形用户界面(GUI)框架和开发工具的一部分,包括但不限于Java Swing、.NET Windows Forms和Web浏览器中的HTML表格。
DataGrid控件的主要目的是允许用户以易于理解和操作的方式查看和编辑数据。
它通常以网格的形式展现数据,每行代表一条记录,每列代表一个属性或字段。
用户可以通过DataGrid控件的各种交互方式来查看、过滤、排序和编辑数据。
DataGrid控件常见的功能包括以下几个方面:1. 数据绑定:DataGrid控件通常可以与数据源进行绑定,从而自动显示和更新数据。
这样,当数据源改变时,控件会自动更新显示的数据。
通过数据绑定,可以大大简化开发过程,减少手动操作的工作量。
2. 排序和过滤:DataGrid控件通常提供排序和过滤功能,允许用户根据特定的属性或条件对数据进行排序和过滤。
这样,用户可以更快地找到所需的数据,并且可以根据自己的需求进行数据的展示和分析。
3. 编辑和验证:DataGrid控件通常允许用户直接在表格中进行数据的编辑。
用户可以通过单击单元格来编辑数据,然后保存或取消更改。
同时,控件通常支持数据的验证功能,以确保用户输入的数据符合特定的规则和要求。
4. 样式和格式:DataGrid控件通常允许用户自定义表格的样式和格式,包括字体、颜色、边框等。
这样,用户可以根据自己的需求和偏好进行界面的定制,使其更加符合应用程序的整体风格和用户需求。
5. 事件处理:DataGrid控件通常提供一系列事件,以便开发人员能够对用户的操作进行响应。
例如,当用户单击单元格、选择行或保存数据时,控件会触发相应的事件,开发人员可以在事件处理程序中编写代码来执行特定的操作。
总之,DataGrid控件是一种非常有用的用户界面控件,用于以表格形式显示和编辑数据。
详解datagrid使⽤⽅法(重要)1、将静态HTML渲染为datagrid样式<!-- ⽅式⼀:将静态HTML渲染为datagrid样式 --><table class="easyui-datagrid"><thead><tr><th data-options="field:'id'">编号</th><th data-options="field:'name'">姓名</th><th data-options="field:'age'">年龄</th></tr></thead><tbody><tr><td>001</td><td>⼩明</td><td>90</td></tr><tr><td>002</td><td>⽼王</td><td>3</td></tr></tbody></table>2、发送ajax请求获取json数据创建datagrid 提供json⽂件<!-- ⽅式⼆:发送ajax请求获取json数据创建datagrid --><table data-options="url:'${pageContext.request.contextPath }/json/datagrid_data.json'"class="easyui-datagrid"><thead><tr><th data-options="field:'id'">编号</th><th data-options="field:'name'">姓名</th><th data-options="field:'age'">年龄</th></tr></thead></table>2、使⽤easyUI提供的API创建datagrid(掌握)<!-- ⽅式三:使⽤easyUI提供的API创建datagrid --><script type="text/javascript">$(function(){//页⾯加载完成后,创建数据表格datagrid$("#mytable").datagrid({//定义标题⾏所有的列columns:[[{title:'编号',field:'id',checkbox:true},{title:'姓名',field:'name'},{title:'年龄',field:'age'},{title:'地址',field:'address'}]],//指定数据表格发送ajax请求的地址url:'${pageContext.request.contextPath }/json/datagrid_data.json',rownumbers:true,singleSelect:true,//定义⼯具栏toolbar:[{text:'添加',iconCls:'icon-add',//为按钮绑定单击事件handler:function(){alert('add...');}},{text:'删除',iconCls:'icon-remove'},{text:'修改',iconCls:'icon-edit'},{text:'查询',iconCls:'icon-search'}],//显⽰分页条pagination:true});});</script>如果数据表格中使⽤了分页条,要求服务端响应的json变为:请求响应:3、案例:取派员分页查询(1)页⾯调整修改页⾯中datagrid的URL地址(2)服务端实现分装分页相关属性/*** 通⽤分页查询⽅法*/public void pageQuery(PageBean pageBean) {int currentPage = pageBean.getCurrentPage();int pageSize = pageBean.getPageSize();DetachedCriteria detachedCriteria = pageBean.getDetachedCriteria();//查询total---总数据量detachedCriteria.setProjection(Projections.rowCount());//指定hibernate框架发出sql的形式----》select count(*) from bc_staff; List<Long> countList = (List<Long>) this.getHibernateTemplate().findByCriteria(detachedCriteria);Long count = countList.get(0);pageBean.setTotal(count.intValue());//查询rows---当前页需要展⽰的数据集合(3)detachedCriteria.setProjection(null);//指定hibernate框架发出sql的形式----》select * from bc_staff int firstResult = (currentPage - 1) * pageSize;int maxResults = pageSize;List rows = this.getHibernateTemplate().findByCriteria(detachedCriteria, firstResult, maxResults);pageBean.setRows(rows);}//属性驱动,接收页⾯提交的分页参数private int page;private int rows;/*** 分页查询⽅法* @throws IOException*/public String pageQuery() throws IOException{PageBean pageBean = new PageBean();pageBean.setCurrentPage(page);pageBean.setPageSize(rows);//创建离线提交查询对象DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Staff.class);pageBean.setDetachedCriteria(detachedCriteria);staffService.pageQuery(pageBean);//使⽤json-lib将PageBean对象转为json,通过输出流写回页⾯中//JSONObject---将单⼀对象转为json//JSONArray----将数组或者集合对象转为jsonJsonConfig jsonConfig = new JsonConfig();//指定哪些属性不需要转jsonjsonConfig.setExcludes(new String[]{"currentPage","detachedCriteria","pageSize"});String json = JSONObject.fromObject(pageBean,jsonConfig).toString();ServletActionContext.getResponse().setContentType("text/json;charset=utf-8");ServletActionContext.getResponse().getWriter().print(json);return NONE;}取派员的批量删除在取派员表中存在⼀个删除标识位deltag,1表⽰已删除,0表⽰未删除(1)页⾯调整//修改删除按钮绑定的事件:function doDelete(){//获取数据表格中所有选中的⾏,返回数组对象var rows = $("#grid").datagrid("getSelections");if(rows.length == 0){//没有选中记录,弹出提⽰$.messager.alert("提⽰信息","请选择需要删除的取派员!","warning");}else{//选中了取派员,弹出确认框$.messager.confirm("删除确认","你确定要删除选中的取派员吗?",function(r){if(r){var array = new Array();//确定,发送请求//获取所有选中的取派员的idfor(var i=0;i<rows.length;i++){var staff = rows[i];//json对象var id = staff.id;array.push(id);}var ids = array.join(",");//1,2,3,4,5location.href = "staffAction_deleteBatch.action?ids="+ids;}});}}(2)服务端实现第⼀步:在StaffAction中创建deleteBatch批量删除⽅法//属性驱动,接收页⾯提交的ids参数private String ids;/*** 取派员批量删除*/public String deleteBatch(){staffService.deleteBatch(ids);return LIST;}第⼆步:在Service中提供批量删除⽅法/*** 取派员批量删除* 逻辑删除,将deltag改为1*/public void deleteBatch(String ids) {//1,2,3,4if(StringUtils.isNotBlank(ids)){String[] staffIds = ids.split(",");for (String id : staffIds) {staffDao.executeUpdate("staff.delete", id);}}}第三步:在Staff.hbm.xml中提供HQL语句,⽤于逻辑删除取派员<!-- 取派员逻辑删除 --><query name="staff.delete">UPDATE Staff SET deltag = '1' WHERE id = ?</query>取派员修改功能(1)页⾯调整第⼀步:为数据表格绑定双击事件第⼆步:复制页⾯中添加取派员窗⼝,获得修改取派员窗⼝第三步:定义function//数据表格绑定的双击⾏事件对应的函数function doDblClickRow(rowIndex, rowData){//打开修改取派员窗⼝$('#editStaffWindow').window("open");//使⽤form表单对象的load⽅法回显数据$("#editStaffForm").form("load",rowData);}(2)服务端实现在StaffAction中创建edit⽅法,修改取派员信息/*** 修改取派员信息*/public String edit(){//显查询数据库,根据id查询原始数据Staff staff = staffService.findById(model.getId());//使⽤页⾯提交的数据进⾏覆盖staff.setName(model.getName());staff.setTelephone(model.getTelephone());staff.setHaspda(model.getHaspda());staff.setStandard(model.getStandard());staff.setStation(model.getStation());staffService.update(staff);return LIST;}到此这篇关于详解datagrid使⽤⽅法(重要)的⽂章就介绍到这了,更多相关datagrid使⽤⽅法内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
GridView合并单元格的两种解决⽅案第⼀种⽅案|---|---|---|---|---|| A | B | C |100|150||---|---|---|---|---|| A | B | D |200|250||---|---|---|---|---|| A | E | C |100|150||---|---|---|---|---|| A | E | D |120|250||---|---|---|---|---|通过代码处理希望得到的表|---|---|---|---|---|| | B | C |100|150|| | |---|---|---|| | | D |200|250|| |---|---|---|---|| A | | C |100|150|| | |---|---|---|| | E | D |120|250||---|---|---|---|---|public class GridDecorator{public static void MergeRows(GridView gridView){for (int rowIndex = gridView.Rows.Count - 2; rowIndex >= 0; rowIndex--){GridViewRow row = gridView.Rows[rowIndex];GridViewRow previousRow = gridView.Rows[rowIndex + 1];for (int i = 0; i < row.Cells.Count; i++){if (row.Cells[i].Text == previousRow.Cells[i].Text){row.Cells[i].RowSpan = previousRow.Cells[i].RowSpan < 2 ? 2 :previousRow.Cells[i].RowSpan + 1;previousRow.Cells[i].Visible = false;}}}}}在 PreRender 预呈现的事件中做操作protected void gridView_PreRender(object sender, EventArgs e){GridDecorator.MergeRows(gridView);}第⼆种⽅案#region 合并单元格合并某⼀⾏的所有列 /// <summary> /// 合并GridView中某⾏相同信息的⾏(单元格) /// </summary> /// <param name="GridView1">GridView对象</param> /// <param name="cellNum">需要合并的⾏</param> public static void GroupRow(GridView GridView1, int rows) { TableCell oldTc = GridView1.Rows[rows].Cells[0]; for (int i = 1; i < GridView1.Rows[rows].Cells.Count; i++) { TableCell tc = GridView1.Rows[rows].Cells[i]; //Cells[0]就是你要合并的列 if (oldTc.Text == tc.Text) { tc.Visible = false; if (oldTc.ColumnSpan == 0) { oldTc.ColumnSpan = 1; } oldTc.ColumnSpan++; oldTc.VerticalAlign = VerticalAlign.Middle; } else { oldTc = tc; } } } #endregion #region 合并单元格合并⼀⾏中的⼏列 /// <summary> /// 合并单元格合并⼀⾏中的⼏列 /// </summary> /// <param name="GridView1">GridView ID</param> /// <param name="rows">⾏</param> /// <param name="sCol">开始列</param> /// <param name="eCol">结束列</param> public static void GroupRow(GridView GridView1, int rows,int sCol,int eCol) { TableCell oldTc = GridView1.Rows[rows].Cells[sCol]; for (int i = 1; i < eCol - sCol; i++) { TableCell tc = GridView1.Rows[rows].Cells[i + sCol]; //Cells[0]就是你要合并的列 tc.Visible = false; if (oldTc.ColumnSpan == 0) { oldTc.ColumnSpan = 1; } oldTc.ColumnSpan++; oldTc.VerticalAlign = VerticalAlign.Middle; } } #endregion #region 合并单元格合并某⼀列所有⾏ /// <summary> /// 合并GridView中某列相同信息的⾏(单元格) /// </summary> /// <param name="GridView1"></param> /// <param name="cellNum"></param> public static void GroupCol(GridView GridView1, int cols) { if (GridView1.Rows.Count < 1 || cols > GridView1.Rows[0].Cells.Count - 1) { return; } TableCell oldTc = GridView1.Rows[0].Cells[cols]; for (int i = 1; i < GridView1.Rows.Count; i++) { TableCell tc = GridView1.Rows[i].Cells[cols]; if (oldTc.Text == tc.Text) { tc.Visible = false; if (oldTc.RowSpan == 0) { oldTc.RowSpan = 1; } oldTc.RowSpan++; oldTc.VerticalAlign = VerticalAlign.Middle; } else { oldTc = tc; } } } #endregion #region 合并单元格合并某⼀列中的某些⾏ /// <summary> /// 合并单元格合并某⼀列中的某些⾏ /// </summary> /// <param name="GridView1">GridView ID</param> /// <param name="cellNum">列</param> /// <param name="sRow">开始⾏</param> /// <param name="eRow">结束列</param> public static void GroupCol(GridView GridView1, int cols,int sRow,int eRow) { if (GridView1.Rows.Count < 1 || cols > GridView1.Columns.Count - 1) { return; } TableCell oldTc = GridView1.Rows[sRow].Cells[cols]; for (int i = 1; i < eRow - sRow; i++) { TableCell tc = GridView1.Rows[sRow + i].Cells[cols]; tc.Visible = false; if (oldTc.RowSpan == 0) { oldTc.RowSpan = 1; } oldTc.RowSpan++; oldTc.VerticalAlign = VerticalAlign.Middle; } } #endregion。
在ASP-NET中读写Excel文件有四种解决方案在中读写Excel文件有四种解决方案在应用程序常常会遇到需要从Excel 文件中读取数据或将数据写入Excel的需求。
一般来讲,在中读写Excel文件有四种解决方案。
1.1.1 使用OLE DB使用OLE DB可以以查询数据库的方式来读取Excel文件,因为在某种程度上Excel表格可以看成是一张一张的数据表。
其二者的主要区别在于所使用的数据引擎不一样。
使用OLE DB访问Excel的要点是计算机上必须具有Microsoft Access Data Component 2.6(MADC2.6)以上版本,同时在连接字符串上必须声明“Extended Properties=Excel 8.0”,这里的指定Excel 版本号如果高于8.0可能会出错,所以一般来讲必须使用Excel 8.0。
然后其它的写法就和一般的访问数据库一样了,打开连接,填充数据集,再关闭连接即可。
例如下面的实现代码://创建一个数据链接string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source =c:\\sample.xls;Extended Properties=Excel 8.0" ; OleDbConnection myConn = new OleDbConnection ( strCon ) ;string strCom = " SELECT * FROM [Sheet1$] " ;myConn.Open ( ) ;//打开数据链接,得到一个数据集OleDbDataAdapter myCommand = new OleDbDataAdapter ( strCom , myConn ) ;//创建一个DataSet对象myDataSet = new DataSet ( ) ;//得到自己的DataSet对象myCommand.Fill ( myDataSet , "[Sheet1$]" ) ; //关闭此数据链接myConn.Close ( ) ;代码7-1使用这种解决方案的优点是不需要其他的服务器组件,部署非常方便,但是其缺点也是明显的,用它来读取Excel 2003格式以上的文件会存在数据丢失的情况,而且也无法生成Excel文件。
前几天打算尝试下DataGrid的用法,起初以为应该很简单,可后来被各种使用方法和功能实现所折磨。
网络上的解决方法太多,但也太杂。
没法子,我只好硬着头皮阅览各种文献资料,然后不断的去尝试,总算小有成果。
因此,把我学到的和大家分享一下,相信这篇文章会让你再很短的时间内学会DataGrid的大部分主要功能,而且很多难点都可以在里面找到解决方案。
由于涉及的应用比较多,所以篇幅会很长。
但可以确保各个版块相互独立,总共4个部分1.数据绑定2.DataGrid的增改删功能3.DataGrid的分页实现4.DataGrid的样式设计先上一张截图,让你大概知道自己需要的功能是否在这张图里有所实现。
PS:使用技术:WPF + Entity Framework1.数据绑定(涉及DataGrid绑定和Combox绑定)在DataGrid中同时包含“自动生成列”与“用户自定义列” 由属性AutoGenerateColumns控制。
默认情况下,DataGrid将根据数据源自动生成列。
下图列出了生成的列类型。
如果AutoGenerateColumns="True" ,我们只需要如下几行代码<DataGrid Name="dataGrid1" AutoGenerateColumns="True" />后台dataGrid1.ItemsSource = infoList; //infoList为内容集合(这是我从数据库中获取的记录集合类型为List<T>)PS:因为这里给dataGrid1绑定了数据源,所以下面绑定的字段都是infoList中的字段名称,同样也对应着我数据表中的字段名。
里面包含FID,公司名称,职员姓名,性别,年龄,职务。
解释下,怕大家无法理解Binding 后面的值是如何来的了显然这种数据绑定非常的容易,如果对表格要求不高,这中无疑是最简单方便的。
wpf中datagrid用法摘要:I.简介- 介绍WPF 中的DataGrid 控件- 阐述DataGrid 在WPF 中的重要性II.DataGrid 的基本用法- 创建DataGrid 控件- 设置DataGrid 的数据源- 数据绑定III.DataGrid 的高级用法- 列的自动调整- 排序和筛选- 分页和数据缓存- 用户自定义样式IV.DataGrid 的常见问题及解决方法- 数据更新时的刷新问题- 性能优化- 特定场景下的DataGrid 使用技巧V.总结- 回顾DataGrid 的主要功能和用途- 强调DataGrid 在WPF 应用中的重要地位正文:WPF(Windows Presentation Foundation)是一种基于.NET Framework 的桌面应用程序开发框架,它提供了许多现代化的UI 组件,以帮助开发人员构建具有高度交互性和视觉效果的应用程序。
在WPF 中,DataGrid 控件是一个非常常用的数据展示和编辑组件,它可以用来显示和操作大量数据,为用户提供方便的数据浏览和编辑功能。
DataGrid 控件的使用方法相对简单,首先需要在XAML 文件中创建DataGrid 控件,并设置它的布局和样式。
然后,在后台代码中设置DataGrid 的数据源,通常是通过数据绑定来实现的。
数据绑定是WPF 中一种强大的数据同步机制,它可以让UI 组件与数据模型自动保持同步,实现数据驱动的UI。
一旦设置了DataGrid 的数据源,就可以开始使用DataGrid 的各种功能。
例如,可以使用DataGrid 的列自动调整功能来自适应不同宽度的列;可以对数据进行排序和筛选,以帮助用户更快速地找到所需的数据;可以启用分页功能,以提高数据浏览的性能;还可以自定义DataGrid 的样式,以满足特定场景下的需求。
当然,在实际使用过程中,DataGrid 也可能遇到一些问题。
例如,当数据源发生变化时,如何刷新DataGrid 以显示最新的数据?如何优化DataGrid 的性能,以避免出现卡顿现象?在某些特定场景下,如何巧妙地使用DataGrid?针对这些问题,本文将提供相应的解决方案和技巧。
中GridView使⽤详解(引)GridView⽆代码分页排序GridView选中,编辑,取消,删除GridView正反双向排序GridView和下拉菜单DropDownList结合GridView和CheckBox结合⿏标移到GridView某⼀⾏时改变该⾏的背景⾊⽅法⼀⿏标移到GridView某⼀⾏时改变该⾏的背景⾊⽅法⼆GridView实现删除时弹出确认对话框GridView实现⾃动编号GridView实现⾃定义时间货币等字符串格式GridView实现⽤“...”代替超长字符串GridView⼀般换⾏与强制换⾏GridView显⽰隐藏某⼀列GridView弹出新页⾯/弹出新窗⼝GridView固定表头(不⽤javascript只⽤CSS,2⾏代码,很好⽤)GridView合并表头多重表头⽆错完美版(以合并3列3⾏举例)GridView突出显⽰某⼀单元格(例如⾦额低于多少,分数不及格等)GridView加⼊⾃动求和求平均值⼩计GridView数据导⼊Excel/Excel数据读⼊GridView1.GridView⽆代码分页排序:效果图:1.AllowSorting设为True,aspx代码中是AllowSorting="True";2.默认1页10条,如果要修改每页条数,修改PageSize即可,在aspx代码中是PageSize="12"。
3.默认的是单向排序的,右击GridView弹出“属性”,选择AllowSorting为True即可。
2.GridView选中,编辑,取消,删除:效果图:后台代码:你可以使⽤sqlhelper,本⽂没⽤。
代码如下:using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.SqlClient;public partial class _Default : System.Web.UI.Page{//删除protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e){string sqlstr = "delete from 表 where id='" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";sqlcon = new SqlConnection(strCon);sqlcom = new SqlCommand(sqlstr,sqlcon);sqlcon.Open();sqlcom.ExecuteNonQuery();sqlcon.Close();bind();}//更新protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e){sqlcon = new SqlConnection(strCon);string sqlstr = "update 表 set 字段1='"+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim() + "',字段2='"+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim() + "',字段3='"+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim() + "' where id='"+ GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";sqlcom=new SqlCommand(sqlstr,sqlcon);sqlcon.Open();sqlcom.ExecuteNonQuery();sqlcon.Close();GridView1.EditIndex = -1;bind();}//取消protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e){GridView1.EditIndex = -1;bind();}//绑定public void bind(){string sqlstr = "select * from 表";sqlcon = new SqlConnection(strCon);SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);DataSet myds = new DataSet();sqlcon.Open();myda.Fill(myds, "表");GridView1.DataSource = myds;GridView1.DataKeyNames = new string[] { "id" };//主键GridView1.DataBind();sqlcon.Close();}}前台主要代码:... ...<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4"ForeColor="#333333" GridLines="None" OnRowDeleting="GridView1_RowDeleting" OnRowEditing="GridView1_RowEditing"OnRowUpdating="GridView1_RowUpdating" OnRowCancelingEdit="GridView1_RowCancelingEdit"> <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" /><Columns><asp:BoundField DataField="⾝份证号码" HeaderText="⽤户ID" ReadOnly="True" /><asp:BoundField DataField="姓名" HeaderText="⽤户姓名" /><asp:BoundField DataField="员⼯性别" HeaderText="性别" /><asp:BoundField DataField="家庭住址" HeaderText="家庭住址" /><asp:CommandField HeaderText="选择" ShowSelectButton="True" /><asp:CommandField HeaderText="编辑" ShowEditButton="True" /><asp:CommandField HeaderText="删除" ShowDeleteButton="True" /></Columns><RowStyle ForeColor="#000066" /><SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" /><PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" /><HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" /></asp:GridView>3.GridView正反双向排序:效果图:点姓名各2次的排序,点其他也⼀样可以。
设置GridView⾃适应列宽不变形动态绑定的GridView由于列数不固定,⽽列⼜太多,这样设置GridView固定宽度就不能满⾜需求了。
为此整理了两种⽅法来达到GridView ⾃适应列宽不变形的效果。
//在GridView的⾏数据绑定完的事件中设置protected void gvObjectList_RowDataBound(object sender, GridViewRowEventArgs e){if (e.Row.RowType == DataControlRowType.DataRow || e.Row.RowType == DataControlRowType.Header){//保持列不变形for (int i = 0; i < e.Row.Cells.Count; i++){//⽅法⼀:e.Row.Cells[i].Text = " " + e.Row.Cells[i].Text + " ";e.Row.Cells[i].Wrap = false;//⽅法⼆://e.Row.Cells[i].Text = "<nobr> " + e.Row.Cells[i].Text + " </nobr>";}}}代码说明:⽅法⼀,设置cell的⾃动换⾏属性为false。
⽅法⼆,⽤html标记的⽅式实现不换⾏;就是⼀个空格,可以让⽹格线和⾥⾯的内容留有⼀定的距离保持美观。
有兴趣的朋友,动⼿下吧,看看效果如何哦。
Table表格控件的使⽤⽅法⼀个Table对象包含多个⾏TableRow,每⼀⾏⼜包含TableCell,TableCell中可以包含其他的HTML或者服务器控件作为Web 服务器控件。
⼀、Table中的属性Table对象:BackImageUrl表格的背景图像的URLCaption表格标题CaptionAlign标题⽂本对齐⽅式CellPadding Table单元格内容和单元格边框之间的空间量(单位:像素)CellSpacing相邻单元格之间的空间量Rows Table控件中⾏的集合TableRow对象:HorizontalAlign获取或设置⾏内容的⽔平对齐⽅式VerticalAlign获取或设置⾏内容的垂直对齐⽅式Cells获取TableCell对象的集合,这些对象表⽰Table控件中的⾏的单元格TableCell对象:ColumnSpan获取或设置单元格在Table跨越的列数RowSpan跨越的⾏数Text获取或设置单元格的⽂本⼆、实例代码单击按钮产⽣表格的后台代码:复制代码代码如下:protected void Button1_Click(object sender, EventArgs e){int a =int.Parse( DropDownList1.SelectedValue); //⽤于取得⾏数int b = int.Parse(DropDownList2.SelectedValue); //⽤于取的列数,int.Parse();和Convert.ToInt32作⽤相同,是将转换为整型。
Table1.BorderColor = System.Drawing.Color.DarkGoldenrod;Table1.BorderWidth = 2; //这两句⽤于设置表格的属性for (int i = 0; i < a; i++){TableRow w = new TableRow(); //实例化⾏对象for (int j = 0; j < b; j++){TableCell q = new TableCell(); //实例化单元格对象q.BackColor = System.Drawing.Color.Blue; //设置单元格的背景颜⾊属性。
AspxGridView使用手记一、基本使用方法 (4)1.导入Dll文件 (4)页面控件注册 (4)3. 页面控件声明 (5)4.删除licenses.licx协议文件(盗版) (5)5.功能概述 (5)二、绑定数据(单层) (5)1.使用DataSource属性绑定DataTable (5)2.使用DataSourceID属性绑定SqlDataSource (6)3.使用DataSourceID属性绑定ObjectDataSource (6)4.使用DataSourceID属性绑定LinqDataSource (9)5.使用DataSourceID属性绑定XmlDataSource (10)三、绑定数据(嵌套树) (10)1.主从数据绑定 (10)四、客户端行维护(新增、修改、删除等) (12)1.编辑状态 (12)2.新增 (13)3.修改 (13)4.删除 (13)五、服务器端行维护(新增、修改、删除等) (13)1.编辑状态 (13)2.新增 (13)3.修改 (15)4.删除 (16)六、数据保存 (17)七、客户端行选择 (17)1.选择页面上所有行 (17)2.选中指定行或所有行 (18)3.获取选中行 (18)4.取消页面上所有行的选择 (19)5.取消指定行或所有行的选择 (19)八、服务器端行选择 (19)1.可选择性设置 (19)2.Selection属性 (19)九、客户端行定位 (20)1.将焦点转移到编辑行的指定列 (20)2.获取焦点行号 (20)3.将某行置为可见(未验证) (20)4.跳转到指定页 (20)十、服务器端行定位 (21)1.焦点行 (21)2.将某行置为可见 (21)3.跳转到指定页 (21)十一、客户端数据搜索 (21)1.数据过滤 (21)十二、服务端数据搜索 (22)1.数据过滤 (22)2.数据搜索 (22)十三、分页 (23)1.分页条相关属性 (23)2.更改分页条按钮属性 (26)3.与分页相关操作 (26)十四、客户端排序 (26)1.使用SortBy方法排序 (26)十五、服务器端排序 (27)1.排序设置 (27)2.使用SortBy方法排序 (27)3.直接操作GridViewDataColumn排序 (28)4.使用GetSortedColumns方法取排序栏位 (28)十六、服务器端数据分组 (28)1.数据分组的前提条件 (28)2.使用GroupBy方法实现数据分组 (28)3.分组的展开与折叠 (29)4.判断分组行是否展开 (29)5.数据分组的相关设置 (29)6.按分组值排序 (30)十七、客户端数据分组 (30)1.使用GroupBy方法实现数据分组 (30)2.分组的展开与折叠 (30)3.判断分组行是否展开 (31)4.判断是分组行还是数据行 (31)5.用户拖动栏位到分组带实现分组 (31)十八、数据导出 (31)1.内置数据导出的前提条件 (31)2.支持的数据导出类型 (32)3. ASPxGridViewExporter重要属性 (32)4.主从ASPxGridView数据导出 (32)5.导出到Pdf时中文乱码问题的解决 (33)十九、报表打印 (33)二十、懒加载 (33)二十一、客户端栏位取值与赋值 (33)1.使用GetPageRowValues取当前页指定栏位值 (33)2.使用GetRowValues取指定行指定栏位值 (34)3.使用GetSelectedFieldValues取选中行指定栏位值 (34)4.取栏位实例 (34)5.使用GetColumnsCount取栏位总数 (34)6.使用MoveColumn隐藏和移动栏位 (34)7.使用GetRowKey取行主键值 (35)二十二、服务器端栏位取值与赋值 (35)1.取行值 (35)2.取列值 (36)二十三、栏位编辑风格 (38)1.AspxGridView栏位类型 (38)2.GridViewColumn服务器端重要属性 (38)3.GridViewColumn服务器端方法 (40)4.GridViewCommandColumn:命令按钮列 (41)5. GridViewDataColumn:基本数据列 (42)6.GridViewDataButtonEditColumn:编辑按钮列 (45)7.GridViewDataCheckColumn: 复选框列 (45)8.GridViewDataTextColumn:文本列 (45)二十四、栏位格式化 (45)二十五、固定列 (45)二十六、栏位拖动 (45)二十七、栏位合计 (46)二十八、栏位初始值 (46)二十九、栏位可编辑性 (46)三十、栏位数据校验 (46)1.行数据校验(编辑状态) (46)三十一、客户端事件 (49)三十二、服务器端事件 (49)1.服务器事件索引 (49)2.AutoFilterCellEditorCreate (49)3.AutoFilterCellEditorInitialize (50)4.BeforeGetCallbackResult (50)5.BeforePerformDataSelect (51)6.CancelRowEditing (51)7. CellEditorInitialize (51)7. ClientLayout (52)8. CustomButtonCallback (52)9. CustomCallback (53)10. CustomColumnDisplayText (54)11. CustomColumnGroup (54)12. CustomColumnSort (55)13. CustomDataCallback (56)14. CustomErrorText (57)15. CustomGroupDisplayText (57)16. CustomJSProperties (58)17. CustomSummaryCalculate (58)三十三、快捷键 (59)三十四、样式 (59)1.GridViewStyles重要属性 (59)2. GridViewAlternatingRowStyle重要属性 (59)三十五、AspxGridView服务器端重要属性 (60)三十六、AspxGridView服务器端重要方法 (60)三十七、GridViewColumnCollection服务器端重要属性 (61)三十八、AspxGridView客户端重要属性 (61)三十九、AspxGridView客户端常用方法 (64)1.PerformCallback (78)四十、AspxGridView客户端非常用方法 (79)四十一、ASPxClientGridViewColumn(客户端栏位)常用属性 (80)四十二、嵌套AspxGridView的特殊控制 (81)1.控制在同一时间只允许一行展开 (81)2.SettingsDetail属性设置 (81)3.嵌套AspxGridView树展开与折叠(客户端) (81)四十三、AspxGridView客户端源代码可借鉴点 (82)四十四、AspxGridView服务器端源代码可借鉴点 (82)四十五、BUG (82)四十六、附录 (82)1.格式化标识符 (82)2.字符串转为枚举型 (84)一、基本使用方法1.导入Dll文件DevExpress.Web.ASPxGridView.v9.1.dllDevExpress.Web.ASPxEditors.v9.1.dllDevExpress.Web.v9.1.dllDevExpress.Data.v9.1.dll文件页面控件注册<%@ Register Assembly="DevExpress.Web.v9.1, Version=9.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"Namespace="DevExpress.Web" TagPrefix="dxwgv" %><%@ Register Assembly="DevExpress.Web.ASPxEditors.v9.1, Version=9.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"Namespace="DevExpress.Web.ASPxEditors" TagPrefix="dxe" %><%@ Register Assembly="DevExpress.Web.ASPxGridView.v9.1, Version=9.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"Namespace="DevExpress.Web.ASPxGridView" TagPrefix="dxwgv" %><%@ Register Assembly="DevExpress.Data.v9.1, Version=9.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"Namespace="DevExpress.Data" TagPrefix="dxwgv" %>3. 页面控件声明<dxwgv:ASPxGridView ID="ASPxGridView1" runat="server"><Columns><dxwgv:GridViewDataColumn Caption="LogID" FieldName="LogID" /><dxwgv:GridViewDataColumn Caption="发生时间" FieldName="OCCDatetime"/><dxwgv:GridViewDataColumn Caption="事件" FieldName="Event" /><dxwgv:GridViewDataColumn Caption="类型" FieldName="Type" /><dxwgv:GridViewDataColumn Caption="创建人" FieldName="Creator" /><dxwgv:GridViewDataColumn Caption="创建日期" FieldName="CreateDate"/><dxwgv:GridViewDataColumn Caption="备注" FieldName="Remark" /> </Columns></dxwgv:ASPxGridView>4.删除licenses.licx协议文件(盗版)5.功能概述(1)丰富的内置样式(2)内建的 Ajax 操作(3)提供客户端 API(4)内置的排序,分页,分组,过滤功能,无需另外编码(5)支持多种现场编辑模式: inline, EditForm, EditFormAndDisplayRow, PopupEditForm(6)可定制模板,支持卡片视图、主从表视图二、绑定数据(单层)可以通过给AspxGridView的DataSource属性或DataSourceID赋值来实现数据绑定。