dataGrid1的小问题 1.可以控制某列的编辑状态,但是对于单独的cell没试过还不清楚:(2.先获取当前鼠标点中的那一行,再根据列名来获取这个cell的值。具体我下面 给你一些参考代码: 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 int iNum;string strResult;iNum=this.dataGrid1.CurrentCell.RowNumber;this.strResult=this.dataGrid1[iNum,0].ToString();//这就获取到当前点击的那一行的第一列的cell的值了。 通过绑定的那个DataTable来设置某一列的编辑状态,如下,设置列名为RepName的列不可编辑:this.sqlDataAdapter1.Fill(this.dataSet11);DataTable dt=this.dataSet11.Tables[0];dt.Columns["RepName"].ReadOnly=true;this.dataGrid1.DataSource=dt; 感谢 各位!获取数据可以了!怎么用代码来使dataGrid1的某行某列处于编辑状态,而不是选中整行! 这是我以前写的 private void Page_Load(object sender, System.EventArgs e) { if(!IsPostBack) BindGrid(); } public void OnExit(object sender,DataGridCommandEventArgs e) { DataGrid1.EditItemIndex=-1; BindGrid(); } public void OnEdit(object sender,DataGridCommandEventArgs e) { DataGrid1.EditItemIndex=(int)e.Item.ItemIndex; BindGrid(); } public void OnUpdate(object sender,DataGridCommandEventArgs e) { try { TextBox PriceTextBox1=(TextBox)e.Item.Cells[2].Controls[0]; TextBox PriceTextBox=(TextBox)e.Item.Cells[3].Controls[0]; decimal Price=Convert.ToDecimal(PriceTextBox.Text); decimal Price1=Convert.ToDecimal(PriceTextBox1.Text); DataGrid1.EditItemIndex=-1; UpdateProduct(Price,Price1,e.Item.Cells[0].Text.Trim()); DataSet ds=new DataSet(); DataGrid1.DataSource=ds.Tables["tablename"]; DataGrid1.DataBind(); BindGrid(); } catch { Response.Write("<script>alert(\"您输入不数据,请重新请输入***^_^***\")</script>"); } } public void UpdateProduct(decimal Price,decimal Price1,string colls) { string sql="select * from wangdianyunfu where wangdianmeng='"+Label4.Text.Trim()+"' order by shijian"; SqlDataAdapter da=new SqlDataAdapter(sql,conn); DataSet ds=new DataSet(); da.Fill(ds,"tablename"); DataTable dt=ds.Tables["tablename"]; dt.PrimaryKey=new DataColumn[]{dt.Columns["wangdianmeng"],dt.Columns["shijian"]}; object []KeyValues=new object[2]; KeyValues[0]=Label4.Text.Trim(); KeyValues[1]=colls; DataRow row=dt.Rows.Find(KeyValues);//就这句 row["shihuijing"]=Price1; row["yingsoudingzhong"]=Price; SqlCommandBuilder cd=new SqlCommandBuilder(da); da.Update(ds,"tablename"); } public void BindGrid() { string sql="select * from table where wangdianmeng='"+Label4.Text.Trim()+"' order by shijian"; SqlDataAdapter da=new SqlDataAdapter(sql,conn); DataSet ds=new DataSet(); da.Fill(ds,"yun"); DataGrid1.DataSource=new DataView(ds.Tables["yun"]); DataGrid1.DataBind(); }请参考 楼上的是webform的吧,我要的是winform的,不过还是谢谢你 感谢 各位!获取数据可以了! 怎么用代码来使dataGrid1的某行某列处于编辑状态,而不是选中整行! 关于做浏览器插件的问题 C# 窗体间的传值 System.Net.Sockets.Socket 未标记为可序列化 .net中的引用无法使用的问题 C#编写记事本程序 回答一个dotnetbar简单的问题就能得100分 帮忙看一下,为什么报错,在线等!谢谢 .net消息队列处理异常 初学!!用C#做了Web程序,运行出错!!!!请高手帮忙指点!!!!!!!!!! C#抓取双色球,3D,等开奖结果 C#表格控件 dataGrid1 不解之谜! 为什么try{}不起作用了?很急!支援!
string strResult;
iNum=this.dataGrid1.CurrentCell.RowNumber;
this.strResult=this.dataGrid1[iNum,0].ToString();
//这就获取到当前点击的那一行的第一列的cell的值了。
如下,设置列名为RepName的列不可编辑:
this.sqlDataAdapter1.Fill(this.dataSet11);
DataTable dt=this.dataSet11.Tables[0];
dt.Columns["RepName"].ReadOnly=true;
this.dataGrid1.DataSource=dt;
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
BindGrid();
}
public void OnExit(object sender,DataGridCommandEventArgs e)
{
DataGrid1.EditItemIndex=-1;
BindGrid();
}
public void OnEdit(object sender,DataGridCommandEventArgs e)
{
DataGrid1.EditItemIndex=(int)e.Item.ItemIndex;
BindGrid();
}
public void OnUpdate(object sender,DataGridCommandEventArgs e)
{
try
{
TextBox PriceTextBox1=(TextBox)e.Item.Cells[2].Controls[0];
TextBox PriceTextBox=(TextBox)e.Item.Cells[3].Controls[0];
decimal Price=Convert.ToDecimal(PriceTextBox.Text);
decimal Price1=Convert.ToDecimal(PriceTextBox1.Text);
DataGrid1.EditItemIndex=-1;
UpdateProduct(Price,Price1,e.Item.Cells[0].Text.Trim());
DataSet ds=new DataSet();
DataGrid1.DataSource=ds.Tables["tablename"];
DataGrid1.DataBind();
BindGrid();
}
catch
{
Response.Write("<script>alert(\"您输入不数据,请重新请输入***^_^***\")</script>");
}
}
public void UpdateProduct(decimal Price,decimal Price1,string colls)
{
string sql="select * from wangdianyunfu where wangdianmeng='"+Label4.Text.Trim()+"' order by shijian";
SqlDataAdapter da=new SqlDataAdapter(sql,conn);
DataSet ds=new DataSet();
da.Fill(ds,"tablename");
DataTable dt=ds.Tables["tablename"];
dt.PrimaryKey=new DataColumn[]{dt.Columns["wangdianmeng"],dt.Columns["shijian"]};
object []KeyValues=new object[2];
KeyValues[0]=Label4.Text.Trim();
KeyValues[1]=colls;
DataRow row=dt.Rows.Find(KeyValues);//就这句
row["shihuijing"]=Price1;
row["yingsoudingzhong"]=Price;
SqlCommandBuilder cd=new SqlCommandBuilder(da);
da.Update(ds,"tablename");
}
public void BindGrid()
{
string sql="select * from table where wangdianmeng='"+Label4.Text.Trim()+"' order by shijian";
SqlDataAdapter da=new SqlDataAdapter(sql,conn);
DataSet ds=new DataSet();
da.Fill(ds,"yun");
DataGrid1.DataSource=new DataView(ds.Tables["yun"]);
DataGrid1.DataBind();
}
请参考
怎么用代码来使dataGrid1的某行某列处于编辑状态,而不是选中整行!