各位大哥,问个datagrid问题 在Form中我添加了一个datagrid,现在我想实现一个功能,就是点击datagrid中的某一列,然后把它相应的数据赋给底下的文本框中,在文本框中修改完以后可以提交修改。请各位指点一下。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 很简单.你可以先得到其点击的行号,然后对应到绑定的DataTable,取得相应行的各个字段的内容----如果这个Datagrid没有排序的话.更保险的做法,得到当前行中id(主键)行的cell的值,然后根据此值到绑定的DataTable中Select到行... 显示在textbox:int i= this.dataGrid1.CurrentRowIndex;this.TextBox1.Text = this.ds.Tables["表名"].Rows[i]["字段名"].ToString();修改:this.ds.Tables["表名"].Rows[i]["字段名"]="新值";更新:ad.Update(ds,"表名"); 比如:private void myDataGrid_CurrentCellChanged(object sender, System.EventArgs e){ //设置主键 if(myDataTable.PrimaryKey == null || myDataTable.PrimaryKey.Length == 0) myDataTable.PrimaryKey = new DataColumn[]{... // your id column}; //得到用户当前点击行的主键字段的值 string s = myDataGrid[myDataGrid.CurrentRowIndex,myDataTable.Columns.IndexOf(主键名)]).ToString(); //构造过滤条件,调用myDataTable.Select方法得到对应的行,然后把它相应的数据赋给底下的文本框中 myDataTable.Select("id='"+s+"'"); //....} 就是点击datagrid中的某一列?是不是某一行呀?你最好是把更新需要用到的值放到datagrid中,这样更保险,如果不想让别人看到,可以将该行设置宽度设置为0。 赋值我已经搞定了,可是我点击一个修改按钮后,怎样来获得我这个表中的主键呢,我这个主键没有从数据库中取出,主要是我不想让他先是出来。你可以把主键显示在某一列中,然后在datagrid的属性里面设置这一列为不可见就可以了.然后再获取主键就好操作了. 我的datagrid中的列是直接从Sql语句中固定的,比如sql="select aa,bb,cc from table"我并没有在datagrid属性中添加列,不知道datagrid的哪个属性可以添加列,又怎样才能让他不自动绑定呢?我原来是写.net web程序的,在web的datagrid中还可以在属性生成器中添加列,可是到了winform中就不知道了,感觉到有很大的区别的。 DataColumn 列= null; //B_LINECODE 列= new DataColumn(); 列.DataType = System.Type.GetType ("System.String"); 列.ColumnName = "B_LINECODE"; 表.Columns.Add(列); winform中WebBrower打开word2010 能否直接嵌入到此控件中? 数据流与图片转换 合并表时导致ASP.NET的验证控件丢失 C#代码不明白 多条件查询问题,不填写默认为无条件 c#中生成静态页面,在静态页面中用Iframe连接一个页面判断跳转问题!拜托大家了 简单问题!急!! 关于协作系统设计的问题。。。做过企业开发的帮忙啊。。。谢谢。。。 VS2005和VS2003有何区别啊,未用过2005 在类中怎么使用委托 Windows应用程序里面有没有类似于Session这样的全局缓存机制 几点小问题!!~
int i= this.dataGrid1.CurrentRowIndex;
this.TextBox1.Text = this.ds.Tables["表名"].Rows[i]["字段名"].ToString();修改:
this.ds.Tables["表名"].Rows[i]["字段名"]="新值";更新:
ad.Update(ds,"表名");
{
//设置主键
if(myDataTable.PrimaryKey == null || myDataTable.PrimaryKey.Length == 0)
myDataTable.PrimaryKey = new DataColumn[]{... // your id column};
//得到用户当前点击行的主键字段的值
string s = myDataGrid[myDataGrid.CurrentRowIndex,myDataTable.Columns.IndexOf(主键名)]).ToString();
//构造过滤条件,调用myDataTable.Select方法得到对应的行,然后把它相应的数据赋给底下的文本框中
myDataTable.Select("id='"+s+"'");
//....}
是不是某一行呀?
你最好是把更新需要用到的值放到datagrid中,这样更保险,如果不想让别人看到,可以将该行设置宽度设置为0。
赋值我已经搞定了,可是我点击一个修改按钮后,怎样来获得我这个表中的主键呢,我这个主键没有从数据库中取出,主要是我不想让他先是出来。你可以把主键显示在某一列中,然后在datagrid的属性里面设置这一列为不可见就可以了.然后再获取主键就好操作了.
我并没有在datagrid属性中添加列,不知道datagrid的哪个属性可以添加列,又怎样才能让他不自动绑定呢?我原来是写.net web程序的,在web的datagrid中还可以在属性生成器中添加列,可是到了winform中就不知道了,感觉到有很大的区别的。
//B_LINECODE
列= new DataColumn();
列.DataType = System.Type.GetType ("System.String");
列.ColumnName = "B_LINECODE";
表.Columns.Add(列);