日期:2014-05-17  浏览次数:20491 次

真心求帮忙,新手。我想在GridView里实现用CheckBox来控制TextBox控件的编辑功能。
我想在GridView里实现用CheckBox来控制TextBox控件的编辑功能。
即当checked=true时TextBox=Enabled;反之亦然,这样来控制TextBox的可编辑功能。
数据源绑定的是XML,每行都有一个checkbox和TextBox控件。
我想用下面的方法来实现,怎么实现不了呢!
protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
  {
  CheckBox chk = (CheckBox)sender;
  DataControlFieldCell dcf = (DataControlFieldCell)chk.Parent;
  GridViewRow gvr = (GridViewRow)dcf.Parent;
   
  int Index = ((GridViewRow)(chk.NamingContainer)).RowIndex;//获得行号
   

  if (chk.Checked)
  {
  ((TextBox)GridView1.Rows[Index].Cells[5].FindControl("TextBox")).Enabled = false;
   
  }
  else
  {
  ((TextBox)GridView1.Rows[Index].Cells[5].FindControl("TextBox")).Enabled = true;
  }

  }
我把代码直接写在flow.aspx的  
 protected void Page_Load(object sender, EventArgs e)
  {

  }下面了。这样行吗?请高手指点。 



------解决方案--------------------
refer:
http://www.cnblogs.com/insus/archive/2012/09/22/2698003.html
------解决方案--------------------
protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
for (int i = 0; i < GridView1.Rows.Count; i++)
{
CheckBox cbCheck = GridView1.Rows[i].FindControl("CheckBox1") as CheckBox;
TextBox txt = (TextBox)GridView1.Rows[i].FindControl("TextBox");
if (cbCheck.Checked)
txt.Enabled = false;
else
txt.Enabled = true;
}
}
------解决方案--------------------
实现这样的做法一般是用js控制的,没有必要写那么麻烦