作者:Sinory
ComponentOne.Studio.Enterprise.2006中的(C1StudioAspNET2_T106)是著名的C1开发的针对ASP.NET2.0的一套控件库.为ASP.NET开发人员提供了功能丰富的Web开发组件。包括个表格,报表,图表,数据,用户界面和电子商务组件等支持.C1WebGrid是其中最基本的控件之一.
下面介绍它的具体应用方法:
添加引用:
<%@ Register Assembly="C1.Web.C1WebGrid.2" Namespace="C1.Web.C1WebGrid" TagPrefix="C1WebGrid" %>在网页中添加定义
<c1webgrid:c1webgrid id="C1WGridResult" width="100%" runat="server" allowpaging="True" allowsorting="True" backcolor="White" bordercolor="#999999" borderstyle="Groove" borderwidth="1px" cellpadding="3" groupindent="" pagesize="30" allowcolsizing="True" imagesortascending="~/images/up.gif" imagesortdescending="~/images/down.gif" onpageindexchanging="C1WGridResult_PageIndexChanged" onsortingcommand="C1WGridResult_SortingCommand" onitemdatabound="C1WGridResult_ItemDataBound" onitemcreated="C1WGridResult_ItemCreated"> <footerstyle backcolor="#CCCCCC" font-size="9pt" font-bold="False" font-italic="False" font-overline="False" font-strikeout="False" font-underline="False" forecolor="Black" /> <selecteditemstyle backcolor="White" font-bold="False" font-italic="False" font-overline="False" font-strikeout="False" font-underline="False" forecolor="White" /> <itemstyle backcolor="WhiteSmoke" font-size="9pt" font-bold="False" font-italic="False" font-overline="False" font-strikeout="False" font-underline="False" forecolor="Black" horizontalalign="Left" bordercolor="#E0E0E0" borderstyle="Dashed" borderwidth="1px" wrap="False" /> <groupingstyle backcolor="White" bordercolor="Silver" borderwidth="1px" wrap="False"></groupingstyle> <pagerstyle backcolor="#DEDBDE" font-bold="False" font-italic="False" font-overline="False" font-strikeout="False" font-underline="False" forecolor="Black" horizontalalign="Left" mode="NumericPages" borderstyle="Groove" borderwidth="1px" /> <headerstyle backcolor="#999999" font-size="9pt" height="25px" font-bold="True" font-italic="False" font-overline="False" font-strikeout="False" font-underline="False" forecolor="Black" cssclass="C1WGridCss" wrap="False" /> <alternatingitemstyle backcolor="LightGray" font-bold="False" font-italic="False" font-overline="False" font-strikeout="False" font-underline="False" bordercolor="#404040" borderstyle="Dotted" borderwidth="1px" /> </c1webgrid:c1webgrid>下面介绍几个基本的属性:
allowpaging="True" ——是否允许分页
allowsorting="True"——是否允许排序
pagesize="30" ——页面包含的记录的条数
allowcolsizing="True"——是否允许通过拖动改变列宽
imagesortascending="~/images/arrow_up.gif",imagesortdescending="~/images/arrow_down.gif" ——指定排序时在列首显示的图片
onpageindexchanging="C1WGridResult_PageIndexChanged" ——关联到分页处理函数onsortingcommand="C1WGridResult_SortingCommand" ——关联到排序函数
onitemdatabound="C1WGridResult_ItemDataBound" ——关联到数据绑定处理函数
onitemcreated="C1WGridResult_ItemCreated"——在每个Item创建后触发
onsortingcommand——处理排序示例
//注意在设置WebGrid列时要指定每个列自己的SortExpression值,这个函数才能生效,该值一般为该列绑定到的列的列名。
protected void C1WGridResult_SortingCommand(object sender, C1.Web.C1WebGrid.C1SortingCommandEventArgs e) { //用来记录排序方式 String SortDirection = "ASC"; //用来记录排序表达式 String SortExpression = e.SortExpression.ToString();//得到当前选择排序的列的排序表达式 //如果为空则直接返回 if (SortExpression == "") return; try { //如果不为null if (C1WGridResult.Attributes["SortExpression"] != null) { if (SortExpression == C1WGridResult.Attributes["SortExpression"].ToString()) { SortDirection = (C1WGridResult.Attributes["SortDirection"].ToString() == SortDirection ? "DESC" : "ASC");//选择相反的排序方式 } } else { SortDirection = "DESC";// } //将上面得到的值附给WebGrid,然后重新绑定数据 C1WGridResult.Attributes["SortExpression"] = SortExpression; C1WGridResult.Attributes["SortDirection"] = SortDirection; BindC1WGridResult(); } catch (Exception ex) { } }//这里代码的目的是为了使不能排序的列,如模板列,的列//头显示为文字形式而不是连接形式,因为在这个控件中,//即使把列的SortExpression设置为空也还是会在列头处//显示为一个linkbutton(和GridView不同)protected void C1WGridResult_ItemCreated(object sender, C1.Web.C1WebGrid.C1ItemEventArgs e) { try { if (e.Item.ItemType == C1.Web.C1WebGrid.C1ListItemType.Header) { TableCellCollection tcc = e.Item.Cells; //这里假设第一列为模板列 tcc.RemoveAt(0); tcc.Add(new TableHeaderCell()); tcc[0].Text = "选择";//设置列头文字 } } catch { } }另外还可以通如下设置使相同内容的两个Cell合并
C1WGridResult.Columns[2].RowMerge = C1.Web.C1WebGrid.RowMergeEnum.Free;//合并相同