Dev GridView动态生成列

如果动态生成列后进行查询,查询的内容显示的列比显示的多或者少,这是有可能显示的还是第一次加载出来的列。

此时就需要我们把列清空一下,重新绑定生成。清空所有的列。gridview1.Columns.Clear();

/// <summary>
        /// 动态生成列
        /// </summary>
        /// <param name="dt">数据源</param>
        /// <param name="gv">当前GirdView</param>
        /// <param name="control">当前GridControl</param>
        public static  void BindData(DataTable dt, GridView gv, GridControl control)
        {
            Dictionary<int, string> dList = new Dictionary<int, string>();
            //重命名列、存列名
            for (int i = 0; i < dt.Columns.Count; i++)
            {
                dList.Add(i, dt.Columns[i].ColumnName);
                dt.Columns[i].ColumnName = dt.Columns[i].ColumnName.Split(':')[0];//符号可自定义为列名不会出现字符
            }

            control.DataSource = dt;
            gv.OptionsView.ColumnAutoWidth = true;
            for (int i = 0; i < gv.Columns.Count; i++)
            {
                gv.Columns[i].OptionsColumn.AllowEdit = false;
            }
        }

  

posted @ 2020-04-07 17:41  走过不远的地方  阅读(204)  评论(0编辑  收藏  举报