在ASP.NET中插入成功/失败时运行javascript函数



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

我使用detailsview让用户插入所需的数据,但当我想在插入成功或失败时给用户一些反馈时。因此,如果插入成功,我想运行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代码也被执行了。所以我不知道为什么浏览器中什么都没发生。

如果有什么不同的话,那么detailsview就在更新面板中。

对于如何处理该问题的任何反馈或其他建议,我们将不胜感激。

问候

解决了它。在这里留下这个答案,以防其他人遇到类似的问题。

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

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

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

简单=)

相关内容

最新更新