【问题标题】:Trouble with page reload. ASP.NET页面重新加载有问题。 ASP.NET
【发布时间】:2012-08-09 09:39:33
【问题描述】:

所以我拥有的是一个使用 c# 代码和 javascript 代码的 Web 应用程序。我的 javascript 代码会根据用户输入生成一些信息。完成后,它会使用 ASP 按钮保存。附加到 asp 按钮的是客户端单击和单击事件。 Javascript 代码验证代码并确保已创建的字符串有效。如果不是,则将错误消息发送到隐藏标签。然后 C# 代码检查该标签,如果它为空(如果验证没有问题),它会执行 C# 代码。如果它里面有一个值,那么来自隐藏标签的错误消息将使用 c# 代码传递给可见标签并显示给用户。

但是,如果显示错误消息,则页面会自动重新加载(因为它是按钮单击事件,这总是会发生)。并且用户输入从屏幕上清除。

当显示错误消息时,有什么方法可以阻止页面重新加载?

代码

Javascript:

    if (goalnum > 0 && blocknum > 0 && playernum == 1 && goalnum == blocknum) {


        mapsave = JSON.stringify(map);
        document.getElementById('<%=mapsave.ClientID %>').value = mapsave;

    }
    else {
        document.getElementById('<%=lblError.ClientID %>').value = "Your map must have one and only one player, one or more blocks, one or more goals and the number of blocks must match up with the number of goals";
    }

C#

protected void btnSave_Click(object sender, EventArgs e)
    {
        if (mapsave.Value.ToString() == "")
        {
            lblResult.Text = lblError.Value;
        }
        else
        {
            AddNodeToXMLFile("filepath.xml", "TileMaps");
        }

    }

【问题讨论】:

    标签: javascript asp.net reload


    【解决方案1】:

    你点击按钮时return false 吗?如果没有,即使验证失败,也会触发新的 Post。

    你能把代码贴出来吗?

    【讨论】:

    • 我已将上面的代码添加为编辑。正如您在 javascript 中看到的,我将地图保存到名为 mapsave 的标签中,然后如果该标签为空,则显示 lblResult.Text。这是我希望显示错误消息但不重新加载页面的地方,因为他们的信息将被重置。
    • 啊,我刚刚意识到该怎么做...在我的 ASP 按钮中,我必须将 retun 元素添加到我的 onclientclick 上。我不得不添加 return false;到 if 语句上。现在它起作用了。谢谢
    猜你喜欢
    • 2014-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-07
    • 2011-07-21
    • 1970-01-01
    • 2013-04-07
    • 2013-07-31
    相关资源
    最近更新 更多