关于datarid的visible=false的列中控件取值的问题

happyjun2000 2005-03-18 08:43:07
<EditItemTemplate>
<asp:TextBox ID="txtTest" runat="server" Width=60 Text='<%# DataBinder.Eval(Container, "DataItem.collectId") %>'>
</asp:TextBox>
<asp:Label ID="lblTest" Runat=server Width=60 text='<%# DataBinder.Eval(Container, "DataItem.collectId") %>'></asp:Label>

</EditItemTemplate>


然后在后台的update命令中取值,但是我发现Label 是可以取道值的,TextBox 却不可以,因该怎么做???谢谢大虾门
private void gridmain_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
//test
TextBox txtTest = ( TextBox ) gridmain.Items[e.Item.DataSetIndex].FindControl ( "txtTest" ) ;
DataAccess.common.setMessage( txtTest.Text ) ;
Label lblTest = ( Label ) gridmain.Items[e.Item.DataSetIndex].FindControl ( "lblTest" ) ;
DataAccess.common.setMessage( lblTest.Text ) ;
return ;
}
...全文
70 点赞 收藏 8
写回复
8 条回复
fantasychina 2005年03月21日
可以试一下,在单击“编辑”的时候把visibel=false的texbox对应的label的值取出,保存,当更新的时候,用保存的值代替texbox中的值。
回复 点赞
Iceguy 2005年03月21日
每一列都可以取值,不管隐藏还是不隐藏。
private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string 第一列=e.Item.Cells[0].Text; //第一列的值;
string 第二列=e.Item.Cells[1].Text;
string 第三列=e.Item.Cells[2].Text;
string 第四列=e.Item.Cells[3].Text;
.....

这里的列都和你DataGrid里的列一一对应的,Visible=false;是客户端看不到了,但在内存中还是存在的。

回复 点赞
lgsg_01 2005年03月21日
帮顶!
回复 点赞
terryshi 2005年03月21日
难道是postback?
回复 点赞
happyjun2000 2005年03月21日
up
回复 点赞
happyjun2000 2005年03月21日
大哥,我是说要取e.Item.Cells[0]的控件的textbox控件中的值
回复 点赞
happyjun2000 2005年03月18日
up
回复 点赞
happyjun2000 2005年03月18日
TextBox我可以取道他的实例,但是居然说它的值是空的,我只要把<EditItemTemplate>的visible该为true,就可以取道了
回复 点赞
发动态
发帖子
C#
创建于2007-09-28

8.4w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告