Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更改中继器中Textbox的只读属性_C#_Asp.net_Textbox - Fatal编程技术网

C# 更改中继器中Textbox的只读属性

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

在我的aspx页面上,我有一个带有5个文本框和1个imagebutton的中继器来编辑行 这些文本框是只读的,要编辑它们,我需要它们不是只读的

在我的后台代码中,我使用:

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后没有重新绑定转发器。

是否可以发布标记?单击图像中的按钮,事件将触发请发布您的标记?单击图像中的按钮,事件将触发固定。我的页面加载配置不正确,我正在重新绑定中继器,它正在覆盖它。已修复。我的页面加载配置不正确,我正在重新绑定中继器,它正在覆盖它。