在 ASP.NET MVC 3 中,WebGrid 是 Web.Helpers 下的新的类,使用 WebGrid 可以减小我们的代码量,本篇先简单的看下 WebGrid 的使用方法,包括它的分页、排序功能以及样式的设置等。
我们可以在web页面用HTML表格元素定义WebGrid显示数据,它以非常简单的方式呈现表格数据,支持自定义格式列,分页,排序,并通过AJAX异步更新。
The WebGrid is a helper that was included on the new Beta 1 version of ASP.NET MVC 3 (Changes can happens since it is a beta version) that enable us to show data easily.
在笔记三中记录了WebGrid的简单使用,但实际工作中并不能满足开发要求,比如:考虑到性能,要求服务器端分页,而不是查出所有数据来进行简单的客户端页面分页;要在排序时,给列标题显示不同图像等等,都不是直接就能满足的,这里记录下对WebGrid进行的较高层次的使用。
首先安装Infragistics.NetAdvantage.for.ASP.NET.2007.Vol.2,然后在选择项中添加UltraWebGrid,使用方法如下: 1、添加“总计”值 绑定完数据后,添加如下代码 UltraWebGrid1.Rows.Add(); UltraWebGrid1.Rows.Add(); UltraWebGrid1.Rows[UltraWebGrid1.Rows.Count – 1].Cells[0].Text = “小计”; //倒数第一行 UltraWebGrid1.Rows[UltraWebGrid1.Rows.Count – 2].Cells[0].Text = “总计”; double sum = 0; string strtemp = string.Empty; for (int i = 0; i < UltraWebGrid1.Rows.Count – 1; i++) { if (UltraWebGrid1.Rows[i].Cells[2].Value != null) { strtemp = UltraWebGrid1.Rows[i].Cells[2].Value.ToString(); sum += Convert.ToDouble(strtemp); } } UltraWebGrid1.Rows[UltraWebGrid1.Rows.Count – 1].Cells[2].Value = sum; 2、单击单元格选中行 (1) 选择UltraWebGrid-displayout–>CellClickActionDefault=RowSelected (2) 选择UltraWebGrid—displayout–>SelectedRowStyleDefault的BackColor属性,设置颜色。 3、显示自动列号 RowSelectorsDefault=”Yes” AllowRowNumberingDefault=”ByDataIsland” 4、隐藏一列 UltraWebGrid1.Columns[i].Hidden=true; 5、添加模板列 (即在绑定数据外,添加的列):先选择UltraWebGrid –属性–columns–勾选Templated column 即可。 6、增加Checkbox 第一种方法:在表格的InitializeRow事件中添加如下代码 if (e.Row.Band.Index == 0) { string str = string.Empty; str = “<input id=’chk” + e.Row.Index + “‘ type=’checkbox’ name=’chkName” + e.Row.Index + ” ‘ />”; e.Row.Cells[0].Text = str; } 第二种方法: 绑定数据后,添加 GridTake.Columns[0].Type = ColumnType.CheckBox; //设定第0列的数据类型 GridTake.Columns[0].AllowUpdate = AllowUpdate.Yes;//设置checkbox是否可用。 GridTake.Columns.FromKey(“CHK”).Type= ColumnType.CheckBox; GridTake.Columns.FromKey(“CHK”).AllowUpdate = AllowUpdate.Yes; for (int i = 0; i < GridTake.Rows.Count; i++) { GridTake.Rows[i].Cells[0].Value = false; //初始化checkbox } //全选checkbox protected void cbCheckAll_CheckedChanged(object sender, EventArgs e) { if (cbCheckAll.Checked) { for (int i = 0; i < GridTake.Rows.Count; i++) { GridTake.Rows[i].Cells[0].Value = true; } } else { for (int i = 0; i < GridTake.Rows.Count; i++) { GridTake.Rows[i].Cells[0].Value = false; } }
领取专属 10元无门槛券
手把手带您无忧上云