回 帖 发 新 帖 刷新版面

主题:关于GridView的一个很奇怪的问题

我模仿网上的例子,用GridView模仿实现电子表格的功能。GridView中有4个列:UName,UAge,USex,UEmail.每一列的ItemTemplate中有一个可见的Label控件和一个不可见的TextBox或DropDownList控件。 为了方便,我们称Label为显示控件(displaycontrol),TextBox或DropDownList为编辑控件(editcontrol)。在实现对GridView的鼠标单击进入编辑状态的代码如下:

      //前面的代码获取行和列的索引,分别保存在rowindex和columnindex中

      this.message.Text = "行索引为:" + rowindex + ",列索引为:" + columnindex;
      Control displaycontrol = mygridview.Rows[rowindex].Cells[columnindex].Controls[1];//注意这里的‘1’,问题在这里
      displaycontrol.Visible = false;
      Control editcontrol = mygridview.Rows[rowindex].Cells[columnindex].Controls[3];//注意这里的‘3’,问题在这里
      editcontrol.Visible = true;
我的目的是想当选中某个单元格后,displaycontrol不可见,editcontrol可见。
现在的问题出来了:我在每一列的ItemTemplate中只放了两个控件,一个是label(作为displaycontrol),一个是TextBox(作为editcontrol),奇怪的是为什么前面取控件的时候只有写mygridview.Rows[rowindex].Cells[columnindex].Controls[1],mygridview.Rows[rowindex].Cells[columnindex].Controls[3] ,才能取到它们,写成mygridview.Rows[rowindex].Cells[columnindex].Controls[0],mygridview.Rows[rowindex].Cells[columnindex].Controls[1]反而不行,这是为什么啊?[em10][em10][em10]

回复列表 (共2个回复)

沙发

你看下中间是否空格什么的,会被解析成literalcontrol,或者你直接去mygridview.Rows[rowindex].Cells[columnindex].Controls[0],看看它的类型是什么?

板凳

谢谢,问题解决了
好象VS会用一个literalcontrol绑定控件,
也不清楚为什么,
当然用findcontrol就没这种问题了

我来回复

您尚未登录,请登录后再回复。点此登录或注册