如何控制DataGrid某一列的可见性? http://dotnet.aspx.cc/ShowDetail.aspx?id=9EBB267B-E69D-460F-B4C7-BE08CA290C0F 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //绑定数据源 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 ; 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; } 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; SaveFileDialog 不弹出 关于几个控件判断的问题 怎样定义richtextbox的工作区("可编辑区域") C#NET 关于数据绑定 c#可以做ad卡采集吗 碰到一个字符串的分割问题,请教各位一下~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .net中绝对路径和相对路径 关于winform中菜单的问题 求救:我有一个面试,哪位大侠能帮忙作一下笔试题目? 在自定义的panel中动态加载窗体 C#里可不可以有char* 斑竹进来看看
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 ;
/// <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;
}
//隐藏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;