ASPxGridview总结(ASPxGridView的增,删,改,查,数据绑定,外观显示,功能设定,分页)

 

一、ASPXGridView外观显示 属性: Caption----列的标题( KeyFieldName----数据库字段 SEOFriendly 是否启用搜索引擎优化 Summary 指定分页汇总信息的格式

Setting节点的ShowFilterRow=True设置快速查找功能 SettingsBehavior.AllowFocusedRow=true 高亮选中的行,即选中行变色 SettingsBehavior.AllDragDrop=false禁止拖动标题列头 SettingsBehavior.AllowSort实现列头点击后是否可以排序

SettingsPager.ShowEmptyDataRows=True;当数据行为空时,显示空行

SettingsPager.PageSize 每页显示的记录总数

AllButton.Text “全部数据显示”按钮的文本

AllButton.Visible 是否显示“全部数据显示”按钮

FirstPageBuotton/LastPageButton/NextPageButton/PrevPageButton/ 对应首页、末页、下页、上页,设置同上。

NumericButtonCount 最小值为1,控制页码显示个数

protected void ASPxGridView1_PageIndexChanged(object sender, EventArgs e)

{ databind();//只需重新绑定数据即可实现上下翻页 }

新建的列默认是GridViewDataTextColumn类型,选择工具栏的Change To变更列的类型,可以改变新增或修改时的编辑方式。

设置日期类型显示格式,在“行为”PropertiesDateEdit--DisplayFormatString--例如:{0:yyyy年MM月}

当选择了show Group Panel时,FocusedRowChanged事件,重绑定数据,使用时先选中行,再查看

protected void ASPxGridView1_FocusedRowChanged(object sender, EventArgs e)

{ getdata(); } 禁止某一列进行编辑,该列的行为-EditFormSettings-Visible=False 代码中隐藏编辑列的增加,删除,

更新按钮 (ASPxGridView1.Columns[编辑列] as GridViewCommandColumn).NewButton .Visible= true;

(ASPxGridView1.Columns[编辑列] as GridViewCommandColumn).DeleteButton.Visible = true;

(ASPxGridView1.Columns[8] as GridViewCommandColumn).UpdateButton .Visible= true;

每行都有一个CHECKBOX,可以动态选择,只需要这样即可

<Columns>

<dx:GridViewCommandColumnShowSelectCheckbox ="true"VisibleIndex="8"></dx:GridViewCommandColumn>

....其它列

</Columns>

二、ASPXGridView绑定数据 ASPxGridView1.KeyFieldName = "ID";//指定主键。直接更新数据和子表绑定 需要用到

ASPxGridView1.DataSource = dt.defaultView;//指定Grid的数据 ASPxGridView1.DataBind(); //执行绑定 注意,如果查询结果字段有别名,编辑该字段时,UnboundType应设为Object

三、ASPXGridView查找 过滤数据,查找数据

方式一、展开列标题旁边的过滤清单过滤数据(类似Excel的过滤方式)grid.Settings.ShowHeaderFilterButton = true;过滤清单列出了该列出现的所有数据。还可以自定义过滤清单的内容,用法参阅:http://demos.devexpress.com/ASPxGridViewDemos/Filtering/HeaderFilter.aspx

方式二、在列头显示字段过滤条件输入框 grid.Settings.ShowFilterRow = true; 显示条件判断方式下拉列表grid.Settings.ShowFilterRowMenu = true;

四、删除数据

protected void ASPxGridView1_RowDeleting(object sender, DevExpress.Web.Data.ASPxDataDeletingEventArgs e)

{

e.Cancel = true;//否则,只有刷新页面才能看到删除后的结果

int id =Convert.ToInt32( e.Keys[0]);//获取ID upd.DelDownFileList(id);//从数据库删除记录

UpLoadFileListBind();//数据表绑定

}

ASPxGridView自带的删除提示,设两个属性即可: SettingsBehavior. ==> ConfirmDelete=True SettingsText ==> ConfirmDelete=要提示的字符串

五、更新

取值 用e.NewValues[索引] 并且记得更新数据后 ASPxGridView1.CancelEdit();//结束编辑状态

e.Cancel = true;

bind();

例子: //更新

protected void ASPxGridView1_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e)

{

Bill.Message m = new Bill.Message();

//取值 用e.NewValues[索引]

string id = Convert.ToString(e.Keys[0]);

string event_date = e.NewValues[1].ToString();

string event_title = e.NewValues[2].ToString();

string event_description = e.NewValues[3].ToString();

string tag = e.NewValues[4].ToString();

m.Message_update(id, event_date, event_title, event_description, tag);

ASPxGridView1.CancelEdit();//结束编辑状态

e.Cancel = true;

bind();

}

六、排序

在BeforeColumnSortingGrouping事件中重新绑定一下数据

七、分页

PageIndexChanged事件里重新绑定一下数据

--------------------------------------------------------------------------------

1.动态添加非数据绑定列,例子:

动态添加行号列 if (!IsPostBack) {

//动态添加行号非绑定数据

GridViewDataTextColumn dl = new GridViewDataTextColumn();

dl.Caption = "行号";

dl.FieldName = "hh";//该列绑定的字段hh

dl.UnboundType = DevExpress.Data.UnboundColumnType.String;//非数据绑定类型为字符型  dl.PropertiesTextEdit.DisplayFormatString = "c";//显示字符的格式

dl.PropertiesTextEdit.FocusedStyle.ForeColor = System.Drawing.Color.Red;

dl.VisibleIndex = 0;//设置行号列的索引位置

ASPxGridView1.Columns.Insert(0, dl);//把行号列插入0之前

getdata();

ASPxGridView1.Caption = "IP为"+GetClientIP()+"的用户,正在查看网银终端更新内容";

}

在CustomUnboundColumnData事件中

protected void ASPxGridView1_CustomUnboundColumnData(object sender,ASPxGridViewColumnDataEventArgs e) {

if (e.Column.FieldName == "hh" && e.IsGetData)

e.Value = (e.ListSourceRowIndex + 1).ToString();

}

 

2.ASPxComboBox列的相关操作

 简单的方法是

1.FiledName写主表与此字段有关联外键字段:例如uid

2.在PropertiesCombobox下面找这几个属性: 然后在客户姓名的这一列的DataSourceId,给它绑定上我们字表的ObjectDataSource 在TextField设置字段名称,例如:name 在ValueField设置名称应该就是字表的主键(也就是主表引用字表的外键),例如:uid 这样就可以轻松做到,不用写代码,绑定多张表 手写代码的方法来绑定ASPxComboBox 在aspx中将该列的-行为-PropertiesComboBox-ValuesType设为System.String避免ComboBox出现无法选中的现象 using DevExpress.Web.ASPxGridView; using DevExpress.Web.ASPxEditors;

        //在页面加载时,给combox列赋值,这里的workgroupID是在ASPxGridview中的Combox列绑定的字段

       (ASPxGridView1.Columns["WorkgroupID"] as GridViewDataComboBoxColumn).PropertiesComboBox.ValueType = typeof(int);  

   fangqm.Netbank.Core.groupInfo group = new fangqm.Netbank.Core.groupInfo();

       DataTable dt = group.groupSelectAll();// table

       for (int i = 0; i < dt.Rows.Count; i++)

   {

      int id = Convert.ToInt32(dt.Rows[i][0]); string v= dt.Rows[i][1].ToString();

         (ASPxGridView1.Columns["WorkgroupID"] as  ridViewDataComboBoxColumn).PropertiesComboBox.Items.Add(new ListEditItem(v, id));

   }

 在表格进行更新,添加操作时,e.NewValues[1])即可取到客户端的值,

例如: model.WorkgroupID = Convert.ToInt32(e.NewValues[1]); 注意应先呈现COMBOX列,后绑定数据,字段绑定是区分大小写的,要和SELECT语句字段名一模一样

3.数据汇总: 汇总计算aspxgridview的所有行求得平均或总和并显示在页脚。

当settings.showfooter属性设置为True,才显示页脚。

aspxgridview的汇总条目是放在totalsummary属性里。设置DisplayFormat例如:总计{0]台终端,

设置FieldName为非绑定字段,SummaryType设为Sum表示计算这一列的和

4.隐藏编辑列,

在DataBound事件中 protected void ASPxGridView1_DataBound(object sender, EventArgs e) {

 if(ASPxGridView1.VisibleRowCount>0)

   {

        //ASPxGridView1.Columns[命令列索引] (ASPxGridView1.Columns[4] as GridViewCommandColumn).NewButton.Visible = false;

  }

 

 }

--------------------------------------------------------------------------------

六。AspxGridView常见问题

A、点Edit或new按钮,Delete出来Update和cancel,编辑完数据后点击Update,出错:“不支持所指定的方法”.

 

解决方法: 1、确保ASPxGridView已设置了KeyFieldName

      2、确保ASPxGridView已定义了事件 OnRowDeleting, OnRowInserting, OnRowUpdating

           3、后台代码中有对 OnRowDeleting, OnRowInserting, OnRowUpdating 事件的处理。

 B、 绑定主从表(IList)

List的元素带有List属性(Category.Products),并且需要以Grid嵌套的方式显示。

1、 选中GridView(gird1),右键菜单选择“编辑模板”—“DetailRow”,页面打开明细数据界面,向DetailRow添加一个新的  ASPxGridView (grid2)显示明细数据,可以设定grid2的Columns相关属性。Grid2.SettingsDetail.IsDetailGrid = true 指定grid2作为从表数据表格。

2、 增加grid2 DataBinding事件

  protected void grid2_DataBinding(object sender, EventArgs e){

   DevExpress.Web.ASPxGridView.ASPxGridView grid = sender as DevExpress.Web.ASPxGridView.ASPxGridView;

   if ((grid != null) && (dict != null)) {

     int i = (int) grid.GetMasterRowKeyValue();/*取主表记录的Key,主表grid必须设定KeyFieldName*/

       if (i >= 0) { grid.DataSource = dict.Products;//通过Key定位数据,指定子表数据源

    }

    }

   }

3、 右键点击DetailRow,选“结束模板编辑”。修改grid1.SettingsDetail的相关属性

Bool AllowOnlyOneMasterRowExpanded 默认False,是否只允许主表一行展开。True后展开第二行明细记录时,会关闭上次展开的明细记录。

Bool ShowDetailButton 是否显示明细按钮,True显示一个“+”在行首

Bool ShowDetailRow True显示明细数据

4、 过滤数据

方式一、展开列标题旁边的过滤清单过滤数据(类似Excel的过滤方式) grid.Settings.ShowHeaderFilterButton = true;过滤清单列出了该列出现的所有数据。还可以自定义过滤清单的内容,用法参阅:http://demos.devexpress.com/ASPxGridViewDemos/Filtering/HeaderFilter.aspx

方式二、在列头显示字段过滤条件输入框 grid.Settings.ShowFilterRow = true;

     显示条件判断方式下拉列表grid.Settings.ShowFilterRowMenu = true;

5、 用户自定义列显示

Grid.SettingCustomizationWindow

Enabled 运行自定义列显示

PopupHorizontalAlign 列编辑窗水平对齐方式

PopupVerticalAlign 列编辑窗垂直对齐方式

通过JavaScript打开列编辑框。

 <script. type="text/javascript">

<%-- 变更按钮的标题 --%>

function UpdateCustomizationWindowValue() {

  var element = document.getElementById("btnCustWindow");

  if(element == null) return;

   element.value = (grid.IsCustomizationWindowVisible() ? "Hide" : "Show") + " Customization Window"; }

 <%-- 显示自定义列编辑窗--%>

function ShowHideCustomizationWindow() {

     if(grid.IsCustomizationWindowVisible()) grid.HideCustomizationWindow();

      else grid.ShowCustomizationWindow(); UpdateCustomizationWindowValue();

   }

</script>

<input id="btnCustWindow" type="button" value="Show Customization Window" nclick="ShowHideCustomizationWindow();"/>

<dxwgv:ASPxGridView ID="gird"…………………….> ………………………….. <ClientSideEvents CustomizationWindowCloseUp="function(s, e)     { UpdateCustomizationWindowValue(); }" />

</dxwgv:ASPxGridView>

小技巧: AspxGridView在绑定数据的时候,如果数据列的类型是日期型,这时应该用“GridViewDataColumn”而不应该用“GridViewDataTextColumn”,这样的话,数据显示出来的格式就如“1900-01-01",而不是"1900-01-01 0:00:00".

AspxGridView中查找控件不能像GridView中一样用FindControl,而应该用 FindRowCellTemplateControl方法。

应该彻底放弃Response.Write()方法来输出字符中,如果页面中调用了Response.Write方法,会导致AspxGridView的客户端排序功能失去控件,

具体表现为:点击排序时,显示loading,然后就没有反应了,一直loading下去,不会完成排序操作。

利用ASPxGridViewExporter导出aspxgridview中的数据时,如果有数据列,虽然我们可以利用

<PropertiesDateEdit DisplayFormatString="{0:yyyy-MM-dd}"></PropertiesDateEdit>

来格式化aspxgridview的日期列显示样式,但是我们却无法控制利用ASPxGridViewExporter导出后的excel文件中的样式,这时,导出的excel文件中,日期列的显示格式为数据库中aspxgridview数据源中日期列的格式。所以如果想控制导出后excel日期列的格式,必须从aspxgridview的数据源下手,在数据源中格式化日期列,就可以达到格式化导出后excel文件日期列格式的目的了

四、导出ASPxGridView的数据 添加一个ASPxGridViewExporter控件到Page,设置GridViewID为需要导出数据的aspxgridview,调用以下方法实现导出。

   ASPxGridViewExporter1.WriteXlsToResponse()

   ASPxGridViewExporter1.WriteCvsToResponse()

  ASPxGridViewExporter1.WritePdfToResponse()

  ASPxGridViewExporter1.WriteRtfToResponse()

关于导出EXCEL日期格式,操作EXCEL,设置单元格为相应的格式即可

1.遍历主键列中的所有数据.

List<object> keyValue = AspxGridView1.GetSelectedFieldValues("kid");

string str;

foreach(object key in keyValue)

{

  str = key.ToString();

}

2.动态选择某一行.

  //n为要选择的行数

  AspxGridView1.Selection.SetSelection(n,true);

3.获取所有选择行中的数据.这里要注意去这里查看 http://space.itpub.net/?uid-23109131-action-viewspace-itemid-676010

4.问题:当AspxGridView的单元格中包含超链接按钮时,AspxGridView排序后引起超链接错位.

解决方案:设置超链接按钮的属性 EnableViewState=false;

5.根据某行的数据,动态设置选择复选框不可编辑,及动态设置行背景色.

protected void AspxGridView1_HtmlRowPrepared(object sender,ASPxGridViewTableRowEventArgs e)

{

//判断bomcode是否为空.

if(e.GetValue("bomcode").ToString().Trim() == "")

{

//设置选择复选框不可编辑

e.Row.Cell[0].Enabled = false;

//将背景色设置为浅灰色

e.Row.BackColor = Color.LightGray;

} }

//表中有个链接地址,实现点链接地址下载文件,引用命名空间DevExpress.Web.ASPxGridView; //如果不想动态绑定,只需要设置列的FieldName为链接址址字段,TextField为显示链接名称的字段即可

protected void ASPxGridView1_Init(object sender, EventArgs e) {

GridViewDataHyperLinkColumn colLink = new GridViewDataHyperLinkColumn();//实例化一个超链接列 colLink.Caption = "下载吧";//设置列头 colLink.PropertiesHyperLinkEdit.Text = "这是个链接";//显示链接的名称 colLink.PropertiesHyperLinkEdit.TextField = "LinkName";//显示链接名称要绑定的字段

colLink.FieldName = "LinkURL";//该列绑定的字段

colLink.PropertiesHyperLinkEdit.NavigateUrlFormatString="{0}";//链接地址就是该列绑定的字段

colLink.Visible = true; colLink.Width = 200; ASPxGridView1.Columns.Add(colLink);//把该列添加到ASPxGridview

}

using System.Collections.Generic;

//取得当前控件值的集合 直接寻找控件的ID

List <object> keyValues = this.GridViewmethod.GetSelectedFieldValues("F_XXX");//控件的ID

foreach (object key in keyValues)//循环遍历出来

{

}

2.在AspGridView取得某一行

List <object> keyValues = this.GridViewmethod.GetCurrentPageRowValues("F_xxxxx");//F_xxxxx是主键的值

foreach (object key in keyValues)//循环遍历这一行的每一列的数据

{

}

转载于:https://www.cnblogs.com/sky-me/archive/2012/10/25/2738853.html

一、 基本使用方法 4 1.导入Dll文件 4 2.Asp.Net页面控件注册 4 3. Asp.Net页面控件声明 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 77 四十、 AspxGridView客户端非常用方法 78 四十一、 ASPxClientGridViewColumn(客户端栏位)常用属性 79 四十二、 嵌套AspxGridView的特殊控制 80 1.控制在同一时间只允许一行展开 80 2.SettingsDetail属性设置 80 3.嵌套AspxGridView树展开与折叠(客户端) 80 四十三、 AspxGridView客户端源代码可借鉴点 81 四十四、 AspxGridView服务器端源代码可借鉴点 81
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值