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+"
查看详细";
            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"
 
这次就先到这里,以后再补充。。。
原文地址:https://www.cnblogs.com/jinshizuofei/p/4182937.html