【问题标题】:AutoPostBack doesn't work自动回邮不起作用
【发布时间】:2014-04-16 21:14:41
【问题描述】:

我正在尝试学习如何使用自动回发,所以我写了这个:

<asp:TextBox runat="server"  AutoPostBack="true" OnTextChanged="check" ID="Tz"></asp:TextBox>

和后面的代码:

protected void check(object sender, EventArgs e)
{
    Response.Write("checked");
}

我假设当我通过更改文本框中的文本来触发自动回发时,我会在屏幕上看到已选中的字样,但什么也没发生。

有一个窗口弹出并说有一个未处理的异常,此外它在我运行调试器时向我显示了这一点:

    <script type="text/javascript">
//<![CDATA[
var theForm = document.forms['register'];
if (!theForm) {
    theForm = document.register;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
//]]>
</script>

theForm.submit();被标记了。

【问题讨论】:

  • 向您显示的错误是什么 - 您可以发布错误消息吗?另外 - 您的文本框在 UpdatePanel 内吗?
  • 文本框不在 UpdatePanel 中。它在一个表单标签内

标签: c# asp.net .net autopostback


【解决方案1】:

这段代码应该可以工作。

我能想到的唯一一件事是,当您在文本框中输入内容时,您可能希望自动回发触发,但实际上只有在文本框失去焦点时才会触发,例如您单击文本框外的任何位置之后。

【讨论】:

  • 正如 octurnal 建议的那样,这应该可行,唯一可行的方法是在文本更改后将焦点移出文本框,您将看到自动回发生效。不要写到页面上,而是在你的 text_changed 事件中放置一个标签并将文本属性设置为“已更改”。
  • 我尝试了你所说的并放置了一个标签: 并在后面的代码中我写了 this.ch.innerText="checked ";但是当文本框失去焦点时,它仍然会出现同样的错误
【解决方案2】:

我找到了解决方案。 我所要做的就是将提交按钮的 id 从提交更改为其他内容。

【讨论】:

  • @Sajeetharan -- 实际上,这确实提供了答案。错误的 ID 或名称为 submit,它覆盖了表单的 submit 方法。更改名称可以解决问题。这是一个奇怪的、难以发现的错误。
  • @JeremyJStarcher 感谢您告诉我!
猜你喜欢
  • 2013-07-06
  • 1970-01-01
  • 1970-01-01
  • 2021-05-30
  • 2017-09-23
  • 2021-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多