• ASPxGridview使用总结(DEVExpress)(此篇为收集知识点--来源于博客园)


    一。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,可以动态选择,只需要这样即可             ....其它列二。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=TrueSettingsText ==> 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写主表与此字段有关联外键字段:例如uid2.在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 GridViewDataComboBoxColumn).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已设置了KeyFieldName2、确保ASPxGridView已定义了事件 OnRowDeleting, OnRowInserting, OnRowUpdating3、后台代码中有对 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、  增加grid2 DataBinding事件

    Codeprotected 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();            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打开列编辑框。

    我还是会相信,星星会说话,石头会开花,穿过夏天的栅栏和冬天的风雪过后,你终会抵达。
  • 相关阅读:
    修改代码一般在测试服务器
    人很臭尽量往香里去做...
    救赎
    写的css十个错误
    如何debug看源代码
    办公室倒水
    程序和思维
    mousewheel.js 和scroll api
    drupal.behavior 和 document.ready 没有直接的关系
    revision in drupal
  • 原文地址:https://www.cnblogs.com/dfxyw/p/5080087.html
Copyright © 2020-2023  润新知