dev控件使用1:ASPxGridView
dev算是一个比较知名的第三方控件了,但是百度的时候,确实查不到太多有用的资料,这里我总结一下自己使用过程中用到的控件,希望大家少走弯路,我使用的是dev的11.1版本。
gridview应该是编码过程中使用频率最高的数据展示控件了,今天就先写一下这个控件。
一.使用之前的准备:
1.使用之前需要添加四个引用,不然拖拽进来也是要报错的:
2.拖进来一个控件,直接运行,报错,提示aspxClientGridview未定义,查了dev官网上面的答复,需要注册AspxHttpHandleModule:
解决方法,在webconfig中system.web下面添加:
<httpModules> < add type=" DevExpress.Web.ASPxClasses.ASPxHttpHandlerModule, DevExpress.Web.v11.1, Version=11.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a " name=" ASPxHttpHandlerModule" /> </ httpModules> <httpHandlers> < add path=" ASPxUploadProgressHandlerPage.ashx " verb=" GET,POST" type="DevExpress.Web.ASPxUploadControl.ASPxUploadProgressHttpHandler, DevExpress.Web.v11.1, Version=11.1.8.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a " validate="false" /> < add path=" Reserved.ReportViewerWebControl.axd " verb=" *" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a " validate=" false" /> </ httpHandlers>
二.设置数据绑定:
1.gridview中的自增序号列,使用Container.ItemIndex:
<dx: GridViewDataTextColumn Caption ="排名"> <DataItemTemplate> <% #Container.ItemIndex+ 1 %> </DataItemTemplate> </dx: GridViewDataTextColumn>
2.属性(以GridViewDataTextColumn为例):
FieldName:绑定数据源的属性值
VisibleIndex:显示的顺序
更多的属性以后补充。。。
3.事件:
3.1 OnHtmlDataCellPrepared
循环每一个数据单元格,不包括标题,一般用来设置单元格样式
e.Cell.Attributes.Add( "style", "padding-left:" + paddingLeft.ToString() + "px;");
设置单元格横向合并:
e.Cell.ColumnSpan
设置单元格纵向合并:
e.Cell.RowSpan
3.2 OnAfterPerformCallback
gridview页面数据的刷新,调用gridview的refresh方法,执行这个事件。
4.关于列头模板的使用:
4.1 模板的定义:
class MyHeaderTemplate : ITemplate { //可以添加属性传递参数进来 public string Name { get; set; } /// <summary> /// 初始化方法 /// </summary> /// <param name="container">要添加模板的控件</param> public void InstantiateIn(Control container) { ASPxLabel lblDetail = new ASPxLabel(); lblDetail.Text = Name+"\r查看详细"; lblDetail.Attributes.Add("style", "cursor:pointer;"); lblDetail.ClientSideEvents.Click = "ShowDetail"; container.Controls.Add(lblDetail); } }
4.2模板被gridview的列使用:
GridViewDataTextColumn gvColumn = new GridViewDataTextColumn(); MyHeaderTemplate template = new MyHeaderTemplate(); template.Name = "c罗"; gvColumn.HeaderTemplate = template; gvColumn.CellStyle.HorizontalAlign = HorizontalAlign.Justify; gvColumn.CellStyle.VerticalAlign = VerticalAlign.Middle; gvPlayerList.Columns.Add(gvColumn); gvPlayerList.DataSource = playerList; gvPlayerList.DataBind();
三.遇到的问题:
1.存在固定列的情况下,出现滚动条的时候,tab不能让滚动条随着光标滚动,这个去dev论坛查过了,他们的售后说无法解决。
固定列的属性:FixedStyle="Left"
这次就先到这里,以后再补充。。。