ASPxGridview使用总结.docx

上传人:b****7 文档编号:10892611 上传时间:2023-02-23 格式:DOCX 页数:11 大小:20.97KB
下载 相关 举报
ASPxGridview使用总结.docx_第1页
第1页 / 共11页
ASPxGridview使用总结.docx_第2页
第2页 / 共11页
ASPxGridview使用总结.docx_第3页
第3页 / 共11页
ASPxGridview使用总结.docx_第4页
第4页 / 共11页
ASPxGridview使用总结.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

ASPxGridview使用总结.docx

《ASPxGridview使用总结.docx》由会员分享,可在线阅读,更多相关《ASPxGridview使用总结.docx(11页珍藏版)》请在冰豆网上搜索。

ASPxGridview使用总结.docx

ASPxGridview使用总结

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,控制页码显示个数

protectedvoidASPxGridView1_PageIndexChanged(objectsender,EventArgse)

{

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

}

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

设置日期类型显示格式,在“行为”PropertiesDateEdit--DisplayFormatString--例如:

{0:

yyyy年MM月}

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

protectedvoidASPxGridView1_FocusedRowChanged(objectsender,EventArgse)

{

getdata();

}

禁止某一列进行编辑,该列的行为-EditFormSettings-Visible=False

代码中隐藏编辑列的增加,删除,更新按钮

(ASPxGridView1.Columns[编辑列]asGridViewCommandColumn).NewButton.Visible=true;

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

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

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

GridViewCommandColumnShowSelectCheckbox="true"VisibleIndex="8">

GridViewCommandColumn>

....其它列

二。

ASPXGridView绑定数据

ASPxGridView1.KeyFieldName="ID";//指定主键。

直接更新数据和子表绑定需要用到

ASPxGridView1.DataSource=dt.defaultView;//指定Grid的数据

ASPxGridView1.DataBind();//执行绑定

注意,如果查询结果字段有别名,编辑该字段时,UnboundType应设为Object

三。

ASPXGridView查找

过滤数据,查找数据

方式一、展开列标题旁边的过滤清单过滤数据(类似Excel的过滤方式)grid.Settings.ShowHeaderFilterButton=true;过滤清单列出了该列出现的所有数据。

还可以自定义过滤清单的内容,用法参阅:

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

四删除数据

protectedvoidASPxGridView1_RowDeleting(objectsender,DevExpress.Web.Data.ASPxDataDeletingEventArgse)

{

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

intid=Convert.ToInt32(e.Keys[0]);//获取ID

upd.DelDownFileList(id);//从数据库删除记录

UpLoadFileListBind();//数据表绑定

}

ASPxGridView自带的删除提示,设两个属性即可:

SettingsBehavior.==>ConfirmDelete=True

SettingsText==>ConfirmDelete=要提示的字符串

五.更新

取值用e.NewValues[索引]

并且记得更新数据后ASPxGridView1.CancelEdit();//结束编辑状态

e.Cancel=true;

bind();

例子:

//更新

protectedvoidASPxGridView1_RowUpdating(objectsender,DevExpress.Web.Data.ASPxDataUpdatingEventArgse)

{

Bill.Messagem=newBill.Message();

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

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

stringevent_date=e.NewValues[1].ToString();

stringevent_title=e.NewValues[2].ToString();

stringevent_description=e.NewValues[3].ToString();

stringtag=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)

{

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

GridViewDataTextColumndl=newGridViewDataTextColumn();

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事件中

protectedvoidASPxGridView1_CustomUnboundColumnData(objectsender,ASPxGridViewColumnDataEventArgse)

{

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出现无法选中的现象

usingDevExpress.Web.ASPxGridView;

usingDevExpress.Web.ASPxEditors;

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

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

fangqm.Netbank.Core.groupInfogroup=newfangqm.Netbank.Core.groupInfo();

DataTabledt=group.groupSelectAll();//table

for(inti=0;i

{

intid=Convert.ToInt32(dt.Rows[i][0]);

stringv=dt.Rows[i][1].ToString();

(ASPxGridView1.Columns["WorkgroupID"]asGridViewDataComboBoxColumn).PropertiesComboBox.Items.Add(newListEditItem(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事件中

protectedvoidASPxGridView1_DataBound(objectsender,EventArgse)

{

if(ASPxGridView1.VisibleRowCount>0)

{

//ASPxGridView1.Columns[命令列索引]

(ASPxGridView1.Columns[4]asGridViewCommandColumn).NewButton.Visible=false;

}

}

 

 

六。

AspxGridView常见问题

A.点Edit或new按钮,Delete出来Update和cancel,编辑完数据后点击Update,出错:

“不支持所指定的方法”.解决方法:

1、确保ASPxGridView已设置了KeyFieldName

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

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

2、绑定主从表(IList)

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

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

Grid2.SettingsDetail.IsDetailGrid=true指定grid2作为从表数据表格。

2、增加grid2DataBinding事件

Code

protectedvoidgrid2_DataBinding(objectsender,EventArgse)

{

DevExpress.Web.ASPxGridView.ASPxGridViewgrid=senderasDevExpress.Web.ASPxGridView.ASPxGridView;

if((grid!

=null)&&(dict!

=null))

{

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

if(i>=0)

{

grid.DataSource=dict.Products;//通过Key定位数据,指定子表数据源

}

}

}

3、右键点击DetailRow,选“结束模板编辑”。

修改grid1.SettingsDetail的相关属性

BoolAllowOnlyOneMasterRowExpanded默认False,是否只允许主表一行展开。

True后展开第二行明细记录时,会关闭上次展开的明细记录。

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

BoolShowDetailRowTrue显示明细数据

4、过滤数据

方式一、展开列标题旁边的过滤清单过滤数据(类似Excel的过滤方式)grid.Settings.ShowHeaderFilterButton=true;过滤清单列出了该列出现的所有数据。

还可以自定义过滤清单的内容,用法参阅:

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

5、用户自定义列显示

Grid.SettingCustomizationWindow

Enabled运行自定义列显示

PopupHorizontalAlign列编辑窗水平对齐方式

PopupVerticalAlign列编辑窗垂直对齐方式

通过JavaScript打开列编辑框。

Code

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

functionUpdateCustomizationWindowValue(){

varelement=document.getElementById("btnCustWindow");

if(element==null)return;

element.value=(grid.IsCustomizationWindowVisible()?

"Hide":

"Show")+"CustomizationWindow";

}

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

functionShowHideCustomizationWindow(){

if(grid.IsCustomizationWindowVisible())

grid.HideCustomizationWindow();

elsegrid.ShowCustomizationWindow();

UpdateCustomizationWindowValue();

}

ASPxGridViewID="gird"…………………….>

…………………………..

ASPxGridView>

小技巧:

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

00:

00".

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

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

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

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

yyyy-MM-dd}">

来格式化aspxgridview的日期列显示样式,但是我们却无法控制利用ASPxGridViewExporter导出后的excel文件中的样式,这时,导出的excel文件中,日期列的显示格式为数据库中aspxgridview数据源中日期列的格式。

所以如果想控制导出后excel日期列的格式,必须从aspxgridview的数据源下手,在数据源中格式化日期列,就可以达到格式化导出后excel文件日期列格式的目的了

四:

导出ASPxGridView的数据

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

ASPxGridViewExporter1.WriteXlsToResponse()

ASPxGridViewExporter1.WriteCvsToResponse()

ASPxGridViewExporter1.WritePdfToResponse()

ASPxGridViewExporter1.WriteRtfToResponse()

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

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

ListkeyValue=AspxGridView1.GetSelectedFieldValues("kid");

stringstr;

foreach(objectkeyinkeyValue)

{

str=key.ToString();

}

2.动态选择某一行.

//n为要选择的行数

AspxGridView1.Selection.SetSelection(n,true);

3.获取所有选择行中的数据.这里要注意去这里查看

4.问题:

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

解决方案:

设置超链接按钮的属性EnableViewState=false;

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

protectedvoidAspxGridView1_HtmlRowPrepared(objectsender,ASPxGridViewTableRowEventArgse)

{

//判断bomcode是否为空.

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

{

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

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

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

e.Row.BackColor=Color.LightGray;

}

}

//表中有个链接地址,实现点链接地址下载文件,引用命名空间DevExpress.Web.ASPxGridView;

//如果不想动态绑定,只需要设置列的FieldName为链接址址字段,TextField为显示链接名称的字段即可

protectedvoidASPxGridView1_Init(objectsender,EventArgse)

{

GridViewDataHyperLinkColumncolLink=newGridViewDataHyperLinkColumn();//实

展开阅读全文
相关搜索

当前位置:首页 > 高等教育 > 历史学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1