C# 更改中继器中Textbox的只读属性
在我的aspx页面上,我有一个带有5个文本框和1个imagebutton的中继器来编辑行 这些文本框是只读的,要编辑它们,我需要它们不是只读的 在我的后台代码中,我使用:C# 更改中继器中Textbox的只读属性,c#,asp.net,textbox,C#,Asp.net,Textbox,在我的aspx页面上,我有一个带有5个文本框和1个imagebutton的中继器来编辑行 这些文本框是只读的,要编辑它们,我需要它们不是只读的 在我的后台代码中,我使用: protected void EditRecipeInfo(object sender, CommandEventArgs e) { ImageButton ib = sender as ImageButton; TextBox titleTXT = (TextBox)ib.FindControl("titl
protected void EditRecipeInfo(object sender, CommandEventArgs e)
{
ImageButton ib = sender as ImageButton;
TextBox titleTXT = (TextBox)ib.FindControl("titleRepeat");
TextBox qtyTXT = (TextBox)ib.FindControl("qtyRepeat");
TextBox uomTXT = (TextBox)ib.FindControl("uomRepeat");
TextBox prepTXT = (TextBox)ib.FindControl("prepRepeat");
TextBox orTXT = (TextBox)ib.FindControl("orRepeat");
titleTXT.ReadOnly = false;
qtyTXT.ReadOnly = false;
uomTXT.ReadOnly = false;
prepTXT.ReadOnly = false;
orTXT.ReadOnly = false;
////
}
但是,当我触发此事件时,断点显示该属性被设置为false,但当我单击删除文本框中的任何值时,它仍然像只读
更新:
标题
数量。
计量单位
把…准备好
候补
我同意@Tariqulazam的观点,标记会有所帮助
假设您的代码来自ItemCommand事件处理程序,我很惊讶地看到FindControl应用于ImageButton
我想你的代码应该是这样的:
void rpAcces_ItemCommand(object source, RepeaterCommandEventArgs e)
{
//...
ImageButton ib = sender as ImageButton;
TextBox titleTXT = (TextBox)e.Item.FindControl("titleRepeat");
TextBox qtyTXT = (TextBox)e.Item.FindControl("qtyRepeat");
TextBox uomTXT = (TextBox)e.Item.FindControl("uomRepeat");
TextBox prepTXT = (TextBox)e.Item.FindControl("prepRepeat");
TextBox orTXT = (TextBox)e.Item.FindControl("orRepeat");
titleTXT.ReadOnly = false;
qtyTXT.ReadOnly = false;
uomTXT.ReadOnly = false;
prepTXT.ReadOnly = false;
orTXT.ReadOnly = false;
//...
}
另外,请注意,您不能在页面生命周期的后期重新绑定中继器,而不会丢失这些更改。
并注意文本框上设置的任何已启用属性
同样,没有完整的代码很难回答。我同意@Tariklazam的观点,标记会有所帮助 假设您的代码来自ItemCommand事件处理程序,我很惊讶地看到FindControl应用于ImageButton 我想你的代码应该是这样的:
void rpAcces_ItemCommand(object source, RepeaterCommandEventArgs e)
{
//...
ImageButton ib = sender as ImageButton;
TextBox titleTXT = (TextBox)e.Item.FindControl("titleRepeat");
TextBox qtyTXT = (TextBox)e.Item.FindControl("qtyRepeat");
TextBox uomTXT = (TextBox)e.Item.FindControl("uomRepeat");
TextBox prepTXT = (TextBox)e.Item.FindControl("prepRepeat");
TextBox orTXT = (TextBox)e.Item.FindControl("orRepeat");
titleTXT.ReadOnly = false;
qtyTXT.ReadOnly = false;
uomTXT.ReadOnly = false;
prepTXT.ReadOnly = false;
orTXT.ReadOnly = false;
//...
}
另外,请注意,您不能在页面生命周期的后期重新绑定中继器,而不会丢失这些更改。
并注意文本框上设置的任何已启用属性
再次,,如果没有完整的代码,很难回答。请确保在将ReadOnly属性设置为true后没有重新绑定转发器。确保在将ReadOnly属性设置为true后没有重新绑定转发器。是否可以发布标记?单击图像中的按钮,事件将触发请发布您的标记?单击图像中的按钮,事件将触发固定。我的页面加载配置不正确,我正在重新绑定中继器,它正在覆盖它。已修复。我的页面加载配置不正确,我正在重新绑定中继器,它正在覆盖它。