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; } }