• 全部
  • C#综合技术
  • C#互联网桌面应用
  • AppLauncher
  • WinForm&WPF
  • C#开发新技术
  • 问答

如何控制DataGrid某一列的可见性?

harisonh2l 2004-10-27 05:15:31
myDataGrid.DataSource = myDataView;
现在想显示myDataView中的部分列??该如何??
...全文
86 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
shuaizhen 2004-10-27
up
回复
harisonh2l 2004-10-27
谢谢大家
回复
hanbinghai 2004-10-27
winForm
//隐藏dataGridOrder的id列
DataGridTableStyle ts = new DataGridTableStyle(true);
ts.MappingName = this.dS1.Tables[0].TableName;
this.dataGrid1.TableStyles.Clear();
this.dataGrid1.TableStyles.Add(ts);
ts.GridColumnStyles["ID"].Width=0;
回复
Eddie005 2004-10-27
winForm 可以参考这个
/// <summary>
/// 设置DataGrid样式
/// </summary>
public static void InitDataGridHeader(DataGrid dg,string[] mColumnsName,string[] mColumnsHeader,float[] mColumnsWidth)
{
if(mColumnsName.Length != mColumnsHeader.Length || mColumnsHeader.Length != mColumnsWidth.Length)
{
Common.ShowMsg("系统错误:输入参数不正确,请联系系统开发人员");
return;
}

dg.TableStyles.Clear();
DataGridTableStyle myStyle = new DataGridTableStyle();
dg.TableStyles.AddRange(new DataGridTableStyle[]{myStyle});
myStyle.DataGrid = dg;

for(int i=0;i<mColumnsName.Length;i++)
{
DataGridTextBoxColumn tmpColumn = new DataGridTextBoxColumn();
tmpColumn.Format = "";
tmpColumn.FormatInfo = null;
tmpColumn.HeaderText = mColumnsHeader[i];
tmpColumn.MappingName = mColumnsName[i];
tmpColumn.Width = Convert.ToInt32(mColumnsWidth[i] * Common.MySettings.myFontSize / 10.5F);
myStyle.GridColumnStyles.Add(tmpColumn);
}//end of for(int i=0;i<mColumnsName.Length;i++)

myStyle.HeaderForeColor = SystemColors.ControlText;
myStyle.MappingName = dg.DataMember;
myStyle.AlternatingBackColor = Color.Azure;//Color.SeaShell;
myStyle.GridLineStyle = DataGridLineStyle.Solid;
myStyle.GridLineColor = SystemColors.Control;
myStyle.HeaderBackColor = SystemColors.ControlLight;
myStyle.HeaderFont = new Font(Common.MySettings.myFontName,9F,FontStyle.Bold, GraphicsUnit.Point, ((System.Byte)(134)));

dg.Font = Common.MySettings.myFont;
dg.AllowSorting = false;
dg.TableStyles[0].AllowSorting = false;
dg.ReadOnly = true;
//dg.CaptionVisible = false;
}
回复
Eddie005 2004-10-27
winForm 还是 webForm????
回复
Tomgus 2004-10-27
//绑定数据源
datagrid_bgjj.DataSource = dg_ds.Tables["bgjj"].DefaultView;
//设置显示风格
DataGridTableStyle dgts = new DataGridTableStyle();
dgts.MappingName = "bgjj" ;
dgts.ReadOnly = false ;
DataGridTextBoxColumn aColumnTextColumn ;
int rowcount;
rowcount = dg_ds.Tables["bgjj"].Columns.Count;
DataSet ds_columnlabel;
//定义一个具有boolean类型的列
dg_ds.Tables["bgjj"].Columns.Add("选择");
DataGridBoolColumn dgbc = new DataGridBoolColumn();
dgbc.HeaderText = "选择";
dgbc.MappingName = "选择";
dgbc.FalseValue = 0;
dgbc.TrueValue = 1;
dgbc.ReadOnly = false;
dgbc.AllowNull = true;
dgts.GridColumnStyles.Add(dgbc);
for (int i = 0; i < rowcount - 1;i++)
{
//获取中文列名
ds_columnlabel = new DataSet();
SqlDataAdapter columnlabel_sqldataAdapter = new SqlDataAdapter("select pbc_labl,g_visible from sys_lantop where pbc_cnam ='" + dg_ds.Tables["bgjj"].Columns[i].ColumnName + "' order by g_no " ,sqlConnection1);
try
{
sqlConnection1.Open();
columnlabel_sqldataAdapter.Fill(ds_columnlabel,"columnlabel");
}
finally
{
sqlConnection1.Close();
}
aColumnTextColumn = new DataGridTextBoxColumn();
aColumnTextColumn.MappingName = dg_ds.Tables["bgjj"].Columns[i].ColumnName;//绑定列
aColumnTextColumn.NullText = "空";//空字符处理
aColumnTextColumn.HeaderText = ds_columnlabel.Tables[0].Rows[0]["pbc_labl"].ToString();//设置列名
aColumnTextColumn.TextBox.ReadOnly = true;
aColumnTextColumn.TextBox.WordWrap = true;
aColumnTextColumn.TextBox.AutoSize = true;//让列宽根据数据内容自适应调整
dgts.PreferredColumnWidth = aColumnTextColumn.TextBox.Width;
if (dg_ds.Tables["bgjj"].Columns[i].ColumnName == "dwlabel")
{
dgts.PreferredColumnWidth = 150;
}
if( int.Parse(ds_columnlabel.Tables[0].Rows[0]["g_visible"].ToString().Trim()) == 0)
{
dgts.PreferredColumnWidth = 0;
}
dgts.AlternatingBackColor = Color.LightGray;//设定交替行的背景色
dgts.GridColumnStyles.Add(aColumnTextColumn);
}
//自定义列宽
// dgts.PreferredColumnWidth = 100;
//隐藏列
// dgts.PreferredColumnWidth = 0;
datagrid_bgjj.TableStyles.Add(dgts);
datagrid_bgjj.Visible = true ;
lv_bgjj.Visible = false ;
回复
孟子E章 2004-10-27
http://dotnet.aspx.cc/ShowDetail.aspx?id=9EBB267B-E69D-460F-B4C7-BE08CA290C0F
回复
相关推荐
发帖
C#
创建于2007-09-28

10.5w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2004-10-27 05:15
社区公告

让您成为最强悍的C#开发者