DataGridView的列顺序为何总是乱(高分)
在设计时给列已排好的顺序,但运行时显示列乱七八糟,前面到了后面,后面到了前面,不知怎么办?
------解决方案--------------------你是否在设计的时候指定的列数量与SQL查询回来的列数量不符?
------解决方案--------------------我每碰见过这种情况啊,代码?
------解决方案--------------------代码呢?
------解决方案--------------------你是自动生成列的吧,先看看代码?
------解决方案--------------------先帮顶
------解决方案--------------------up
------解决方案--------------------可以先在界面上就给datagridview添加全部的可能出现的列。顺序这时候由你定。
等查询结果出来,绑定的时候给个循环,那些列要的就显示,那些列不要的就隐藏。这样绝对不会打乱顺序。
------解决方案--------------------应该不会的
估计 是你没有把 自动生成列 设为false
------解决方案--------------------自动绑定的数据源?
那么你是不知道到 数据 到底 有多少列了哦?
这样做 界面肯定会变形
最好是 确定好 数据返回的 列数
按列数 排列
不使用自动绑定 手动设置
------解决方案--------------------你已经 自动绑定的数据源
手动绑定就OK
如果自动绑定 需要在SQL里 排好字段的顺序
------解决方案--------------------up
------解决方案--------------------贴上一下代码,不知道有没有帮助
主要的是最后几行的数据再绑定
private void setSort(DsList ds, string sDsNm, string sortKey, GridView gv)
{
DataSet dsWk = ds;
DataSet _Copyds = dsWk.Clone();
DataTable _Copydt = _Copyds.Tables[ "C_ANKEN "];
DataView dv = new DataView(dsWk.Tables[ "C_ANKEN "]);
string wkSort = " ";
string sView = sDsNm + "_ " + sortKey;
if (ViewState[sView] != null)
{
wkSort = ViewState[sView].ToString();
}
string sSort = " ";
if (wkSort.Equals( " asc "))
{
sSort = " desc ";
}
else
{
sSort = " asc ";
}
dv.Sort = sortKey + sSort;
foreach (DataRowView drv in dv)
{
_Copydt.ImportRow(drv.Row);
}
ds.Clear();
ds = (DsList)_Copyds.Copy();
ViewState[sDsNm] = ds;
ViewState[sView] = sSort;
gv.DataSource = ds.C_ANKEN;
gv.PageIndex = 0;
gv.DataBind();
}
------解决方案--------------------up
------解决方案--------------------问题很简单,就是在查询语句中不要使用select *,而是使用select field1,field2,field3 from table的方式,同时在datagridview的各列的排列顺序要和查询中field1,field2,field3的顺序完全一致,就不会出现各列顺序混乱的问题。