c#中datagrid如何设定特定一列不可修改 我将datagrid和数据库表进行了绑定,想实现在datagrid中修改信息并更新到数据库中,但由于要求某些信息是不可改的,须设定datagrid中的某列是不可修改的,请问这个在C#中怎么实现啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在属性设计器里面有只读选项,也可以在代码里设置,就是把ReadOnly="True"<asp:BoundColumn DataField="ModelName" ReadOnly="True" HeaderText="Product Name"></asp:BoundColumn> winfrmprivate void cSetGridEnabled(bool State) { this.dg_Prod.TableStyles["t_op_AutoProduceDtl"].GridColumnStyles["dt_StartDate"].ReadOnly = State; this.dg_Prod.TableStyles["t_op_AutoProduceDtl"].GridColumnStyles["dt_EndDate"].ReadOnly = State; } 我找到解决方法了,用格式设置datagrid的格式即可,具体代码如下: connstr = "server=localhost;database=lianxi;uid=sa;pwd=850126;";//连接数据库 myconnection = new SqlConnection(connstr); myconnection.Open(); string selectcmd ; selectcmd = "select * from 明细表"; myadapter = new SqlDataAdapter(selectcmd, myconnection); myadapter.Fill(mydataset, "明细表"); DataGridTableStyle myGridStyle = new DataGridTableStyle();//设置datagrid格式 myGridStyle.MappingName = "明细表";//绑定表名 dataGrid1.TableStyles.Clear(); DataGridTextBoxColumn nameColumnStyle = new DataGridTextBoxColumn();//设置列 nameColumnStyle.MappingName = "shortname"; nameColumnStyle.HeaderText = "简码"; nameColumnStyle.ReadOnly = true;//只将这一列设为只读 myGridStyle.GridColumnStyles.Add(nameColumnStyle); DataGridTextBoxColumn nameColumnStyle1 = new DataGridTextBoxColumn(); nameColumnStyle1.MappingName = "num"; nameColumnStyle1.HeaderText = "数量"; nameColumnStyle1.ReadOnly = false; myGridStyle.GridColumnStyles.Add(nameColumnStyle1); DataGridTextBoxColumn nameColumnStyle2 = new DataGridTextBoxColumn(); nameColumnStyle2.MappingName = "person"; nameColumnStyle2.HeaderText = "操作员"; nameColumnStyle2.ReadOnly = false; myGridStyle.GridColumnStyles.Add(nameColumnStyle2); dataGrid1.TableStyles.Add(myGridStyle);我试过,程序可以调试通过了,还有我用的是datagrid控件,如果选用datagridview,可以更方便地实现此功能,在属性窗口中column属性中就有相应的设置 :) GetTax 什么意思。 ProgressBar 进度条控件问题 C#算法 去除重复并且获取重复数 不能先排序... c# 循环语句请高手点一下~~~急啊!!!! 还是datatable 和 datagridview绑定问题 怎么样利用无穷级数逼近计算无理数 看C#高级编程(第四版)的一个线程实例问题 急,datagrid中显示不了行数据 c# 打印固定格式的针式打印机 求救!!! 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序 如何删除win下DataGridView中所有行 送分题:C# 2003中host在哪个命名空间下,如何使用?
<asp:BoundColumn DataField="ModelName" ReadOnly="True" HeaderText="Product Name"></asp:BoundColumn>
{
this.dg_Prod.TableStyles["t_op_AutoProduceDtl"].GridColumnStyles["dt_StartDate"].ReadOnly = State;
this.dg_Prod.TableStyles["t_op_AutoProduceDtl"].GridColumnStyles["dt_EndDate"].ReadOnly = State;
}
connstr = "server=localhost;database=lianxi;uid=sa;pwd=850126;";//连接数据库
myconnection = new SqlConnection(connstr);
myconnection.Open(); string selectcmd ;
selectcmd = "select * from 明细表";
myadapter = new SqlDataAdapter(selectcmd, myconnection);
myadapter.Fill(mydataset, "明细表"); DataGridTableStyle myGridStyle = new DataGridTableStyle();//设置datagrid格式
myGridStyle.MappingName = "明细表";//绑定表名
dataGrid1.TableStyles.Clear(); DataGridTextBoxColumn nameColumnStyle = new DataGridTextBoxColumn();//设置列
nameColumnStyle.MappingName = "shortname";
nameColumnStyle.HeaderText = "简码";
nameColumnStyle.ReadOnly = true;//只将这一列设为只读
myGridStyle.GridColumnStyles.Add(nameColumnStyle); DataGridTextBoxColumn nameColumnStyle1 = new DataGridTextBoxColumn();
nameColumnStyle1.MappingName = "num";
nameColumnStyle1.HeaderText = "数量";
nameColumnStyle1.ReadOnly = false;
myGridStyle.GridColumnStyles.Add(nameColumnStyle1); DataGridTextBoxColumn nameColumnStyle2 = new DataGridTextBoxColumn();
nameColumnStyle2.MappingName = "person";
nameColumnStyle2.HeaderText = "操作员";
nameColumnStyle2.ReadOnly = false;
myGridStyle.GridColumnStyles.Add(nameColumnStyle2); dataGrid1.TableStyles.Add(myGridStyle);我试过,程序可以调试通过了,还有我用的是datagrid控件,如果选用datagridview,可以更方便地实现此功能,在属性窗口中column属性中就有相应的设置 :)