zoukankan      html  css  js  c++  java
  • aspxgridview的常用功能列表

    一。ASPXGridView外观显示

    1、行为设置

     <SettingsBehavior AllowFocusedRow="True" ConfirmDelete="True" 
                AllowGroup="False" AllowMultiSelection="True" />

    AllowFocusedRow=true 高亮选中的行,即选中行变色
    AllowMultiSelection="True" 允许选中多行

    AllowGroup="False"  是否允许分组

    ConfirmDelete="True" dev自带的删除提示 (SettingsText ==> ConfirmDelete=要提示的字符串)

    <EditFormSettings Visible="False" />点击编辑按钮时,选中行主键不编辑,在主键列的EditFormSettings属性中

    2、分页设置

     <SettingsPager PageSize="2">
                <FirstPageButton Text="首页" Visible="True">
                </FirstPageButton>
                <LastPageButton Text="末页" Visible="True">
                </LastPageButton>
                <NextPageButton Text="下一页">
                </NextPageButton>
                <Summary Text="第 {0} 页 共 {1} 页 ({2} 行)" />
            </SettingsPager>

    FirstPageBuotton/LastPageButton/NextPageButton/PrevPageButton/ 对应首页、末页、下页、上页,设置同上。
    3、数据汇总
            <TotalSummary>
                <dxwgv:ASPxSummaryItem DisplayFormat="共:{0} 行" ShowInColumn="编码" 
                    SummaryType="Count" />
            </TotalSummary>

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

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

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

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

    4、显示设置
            <SettingsText CommandCancel="取消" CommandClearFilter="清空条件" CommandDelete="删除" 
                CommandEdit="修改" CommandNew="新增" CommandSelect="选择" CommandUpdate="更新" 
                ConfirmDelete="确定要删除吗?" EmptyDataRow="暂无数据" PopupEditFormCaption="编辑" 
                Title="标题" />

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

     //绑定数据的方法
            private void bindData()
            {
                ASPxGridView1.DataSource = aaa.getRechargeDetailQuery();
                ASPxGridView1.DataBind();
            }
    注意,如果查询结果字段有别名,编辑该字段时,UnboundType应设为Object

            //分页
            protected void ASPxGridView1_PageIndexChanged(object sender, EventArgs e)
            {
                ASPxButton2_Click(sender, e);
            }

            //排序
            protected void ASPxGridView1_BeforeColumnSortingGrouping(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewBeforeColumnGroupingSortingEventArgs e)
            {
                bindData();
            }

    三。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)
        {
          string str = e.Keys[0].ToString();
                bool b = aaa.delParByCode(Convert.ToInt32(str));
                if (b == true)
                {
                    e.Cancel = true; //否则,只有刷新页面才能看到删除后的结果


                    bindData();
                }
     
        }
    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)
        {
            //取值 用e.NewValues[索引]
                int PAR_COD = Convert.ToInt32(e.Keys["PAR_COD"]);
                string SECTION = e.NewValues["SECTION"].ToString();
                string PAR_DSP = e.NewValues["PAR_DSP"].ToString();
                string PAR_CVAL = e.NewValues["PAR_CVAL"].ToString();
                decimal PAR_NVAL = Convert.ToDecimal(e.NewValues["PAR_NVAL"]);
                DateTime PAR_DVAL = Convert.ToDateTime(e.NewValues["PAR_DVAL"]);
                string PAR_MEMO = e.NewValues["PAR_MEMO"].ToString();


                aaa.editPar(PAR_COD, SECTION, PAR_DSP, PAR_CVAL, PAR_NVAL, PAR_DVAL, PAR_MEMO);


                ASPxGridView1.CancelEdit();//结束编辑状态
                e.Cancel = true;
                bindData();
        }
    六.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 GridViewDataComboBoxColumn).PropertiesComboBox.Items.Add(new ListEditItem(v, id));
                  
                }
    在表格进行更新,添加操作时,e.NewValues[1])即可取到客户端的值,例如:
    model.WorkgroupID = Convert.ToInt32(e.NewValues[1]);
     
    注意应先呈现COMBOX列,后绑定数据,字段绑定是区分大小写的,要和SELECT语句字段名一模一样


    七。AspxGridView常见问题
    A.点Edit或new按钮,Delete出来Update和cancel,编辑完数据后点击Update,出错:“不支持所指定的方法”.解决方法:
    1、确保ASPxGridView已设置了KeyFieldName
    2、确保ASPxGridView已定义了事件 OnRowDeleting, OnRowInserting, OnRowUpdating
    3、后台代码中有对 OnRowDeleting, OnRowInserting, OnRowUpdating 事件的处理。


    八、 绑定主从表

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

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

    2、  增加grid2 DataBinding事件   

    Code
    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显示明细数据

     


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

    AspxGridView中查找控件不能像GridView中一样用FindControl,而应该用 FindRowCellTemplateControl方法。
    2.动态选择某一行.

    //n为要选择的行数

    AspxGridView1.Selection.SetSelection(n,true);
    3.获取所有选择行中的数据.

    //声明变量

    DataRowView dv ;

    //遍历所有可见行

    for(int i=0; i<AspxGridView1.VisibleRowCount; i++)

    {

        //如果当前行为选择行,则提取数据

      if(AspxGridView1.Selection.IsRowSelected(i))

        {

                //行数据集

                dv = (DataRowView)AspxGridView1.GetRow(i);

         //获取选择行的第n列数据

      string rdno = dv.Row[n].ToString().Trim();


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

    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)//循环遍历这一行的每一列的数据

    {

    }
  • 相关阅读:
    tracteroute路由追踪
    搭建Weblogic服务器
    Logview_pro破解版
    Spring Boot 如何在类中应用配置文件
    使用Mybatis-Generator自动生成Dao、Model、Mapping相关文件(转)
    springboot 项目中控制台打印日志以及每天生成日志文件
    springboot输出日志到指定目录,简单粗暴,springboot输出mybatis日志
    spring boot 发布成包所需插件
    spring注解
    Multicast注册中心
  • 原文地址:https://www.cnblogs.com/lovenan/p/2817497.html
Copyright © 2011-2022 走看看