【问题标题】:ASP.NET UpdatePanel lock all TextBox controls after post-backASP.NET UpdatePanel 在回发后锁定所有 TextBox 控件
【发布时间】:2010-11-02 04:40:23
【问题描述】:

我的代码是 VB.NET。我使用 ASP.NET UpdatePanel,如下所示。但是,回发后,它锁定了 TextBox 控件,我无法输入任何内容 ,除非我将鼠标移到文本框上并单击。

谁能告诉我为什么它在回发后锁定了所有 TextBox 控件?

这就是我使用 UpdatePanel 的原因:

  • 在回发过程中,将数据插入DB后,将所有TextBox文本属性设置为String.Empty

  • 表单提交后,Panel pStudent 应该刷新,而不是整个页面

  • TextBox txtId 应该再次成为焦点。

这是 ASP.NET 页面的标记:http://pastebin.com/maSN8mjj

【问题讨论】:

  • “除非我将鼠标移到文本框上并单击”是什么意思?这是控件没有焦点时的默认行为。
  • 回发后,我将焦点放在TextBox txtId上。光标在 TexBox 中,但它不会接受任何输入,只有当我移动鼠标并先单击 TextBox 时,它才会接受输入。这是我遇到的一个非常奇怪的问题。我之前用过UpdatePanel很多次,但我从来没有遇到过这个问题。

标签: asp.net vb.net asp.net-ajax updatepanel


【解决方案1】:

你用什么来设置文本框的焦点?刷新 UpdatePanel 后,您使用的任何方法似乎都不会被触发。我遇到了其他问题,即 javascript 未应用于 UpdatePanel 中的元素。

确保在刷新 UpdatePanel 后触发更改焦点的 js,以便焦点返回到您的 TextBox。

【讨论】:

    【解决方案2】:

    经查,是Me.Form.Attributes.Add("autocomplete", "off")在Page Load事件中关闭TextBox控件历史记录。

    现在,我把它移到了:

            If Not Page.IsPostBack Then
    
                Me.Form.Attributes.Add("autocomplete", "off")
    
          End IF
    

    【讨论】:

      猜你喜欢
      • 2012-01-05
      • 1970-01-01
      • 1970-01-01
      • 2010-11-03
      • 2011-05-13
      • 1970-01-01
      • 2010-09-12
      • 2013-08-30
      相关资源
      最近更新 更多