我面临着非常奇怪的问题。我尝试过很多东西但是无法解决它。这是场景。
我有GridView
,有40条记录。我正在OnRowDataBound
GridView
事件中注册一个脚本。我使用ScriptManager.RegisterStartupScript
注册了。 GridView
位于UpdatePanel
内,UpdatePanel
会在一分钟后刷新。
首次加载页面时,我的脚本运行正常。但在Partial PostBack之后,它停止了在Firefox上工作。它适用于Chrome,IE,Safari和Opera。只有Firefox才会产生问题。
我在互联网上尝试了很多解决方案,但对我来说没什么用。此外,当页面部分加载时,我没有再次注册脚本,因为它已经注册。对于Firefox,我尝试过在部分回发上注册脚本,但没有运气。这就是我注册的方式:
ScriptManager scriptManager = ScriptManager.GetCurrent(this);
if (scriptManager != null && !scriptManager.IsInAsyncPostBack)
{
ScriptManager.RegisterStartupScript(this.UpdatePanel5, this.UpdatePanel5.GetType(), e.Row.RowIndex.ToString(), "<script language='javascript' type='text/javascript'>alert('Error Message');</script>", false);
//
}
我尝试过将RegisterStartupScript的最后一个参数更改为True并删除脚本标记。
答案 0 :(得分:0)
删除IsInAsyncPostBack
检查,同时使您的脚本名称更加独特。我也倾向于使用RegisterScriptBlock
,这是一个偏好:
ScriptManager scriptManager = ScriptManager.GetCurrent(this);
if (scriptManager != null)
{
ScriptManager.RegisterScriptBlock(this.UpdatePanel5 + DateTime.Now.Ticks.ToString(), this.UpdatePanel5.GetType(), e.Row.RowIndex.ToString(), "<script language='javascript' type='text/javascript'>alert('Error Message');</script>", false);
}