0

我在 .net 回发系统中遇到了意外行为和/或错误。

我有一个使用母版页提供公共元素的页面,表单输入在子页和母版页之间拆分。表单提交按钮位于母版页上,我正在尝试在母版页上处理回发。

每当我尝试提交表单包含任何非空值url 包含参数的数据时,页面都无法正确处理。如果页面本身在任一条件下提交,则不会发生这种情况。

表单回发方法是post。

该页面无法加载,并且在 Firefox 中返回 no element found 错误。

我已经检查了正确的类名等,并且在非表单元素中确实有空属性,但是由于页面一开始正确加载,我认为这不相关。我还检查了无限循环代码。

这是当前的回发处理代码:

protected void Page_Load(object sender, EventArgs e)
{
    if (IsPostBack)
    {
        save_page();
    }

    page_render();
}

//save
private void save_page()
{
    dev_text.Text = "save in progress";
}
4

1 回答 1

0

只有在将 HTML 发送到浏览器时,才能在服务器上的 HTML 元素中设置文本。通常,一旦页面的整个处理完成,就会发生这种情况......所以通常在用户启动回发之后很长一段时间。

与其在服务器上设置文本,不如考虑在提交时直接在浏览器上设置文本。就像是...

function setSavingText(){
   // Vanilla javascript...
   document.getElementById("<%=dev_text.ClientId%>").innerHTML = "save in progress";
   // JQuery...
   $("#<%=dev_text.ClientId%>").text("save in progress");
}

<asp:Button runat="server" ... OnClientClick="setSavingText();" />

上面的函数包含一个用于 vanilla(普通)javascript 的行和一个用于jQuery 库的行。你只需要其中之一。

于 2012-08-22T15:13:46.800 回答