0

我正在使用 ASP.NET 来实现一个站点,并且在提交表单时需要一些帮助给用户一些反馈。

我使用详细信息视图让用户插入所需的数据,但是当我想在插入成功或失败时给用户一些反馈时。因此,如果插入成功,我想运行 JS 函数以显示成功通知,否则显示错误通知。

我尝试使用

OnInserted="areaInsertHandler"

在 SQL 数据源上,然后使用以下命令检查异常:

protected void areaInsertHandler(Object sender, SqlDataSourceStatusEventArgs e)
    {
        if (e.Exception != null)
        {
            // There was an error in submitting, show the error notification
            ClientScript.RegisterClientScriptBlock(GetType(), "DialogHandler", "showError();", true);
            e.ExceptionHandled = true;
        }
        else
        {
            // Show success 
            ClientScript.RegisterClientScriptBlock(GetType(), "DialogHandler", "showSuccess();", true);
        }
    }

但是当我提交时,这两个函数似乎都没有触发。使用浏览器调试器甚至没有输入 JS 函数,因此似乎没有调用它们。使用 VS 调试器,我可以看到确实调用了处理程序并执行了 ClientScript 代码。所以我不确定为什么浏览器没有任何反应。

如果有任何区别,详细信息视图位于更新面板内。

任何有关如何解决该问题的反馈或其他建议将不胜感激。

亲切的问候

4

1 回答 1

0

解决了。把这个答案留在这里,以防其他人遇到类似的麻烦。

问题是我在表单周围使用了更新面板,这意味着它无法将脚本添加到标题中,因为通常意义上的页面没有重新加载。相反,它使用部分回发,仅替换部分正文而不重新加载站点。

解决方案是使用 scriptmanager 而不是 clientscript 注册脚本,如下所示:

ScriptManager.RegisterClientScriptBlock(Page, GetType(), "DialogHandler", "showError();", true);

容易=)

于 2012-09-28T09:49:58.720 回答