English 中文(简体)
异步面板内FormView内UserControl中的ScriptManager.RegisterClientScript
原标题:
  • 时间:2008-09-24 13:55:34
  •  标签:

我在异步面板的formview中从用户控件内部注册javascript事件时遇到了一个恼人的问题。我进入我的表单视图,按下一个按钮切换到插入模式。这不会进行整页回发。在插入模式下,我的用户控件的page_load事件应该使用ScriptManager.RegisterStartupScript注册一个javascript事件:

ScriptManager.RegisterStartupScript(base.Page, this.GetType(), ("dialogJavascript" + this.ID), "alert("Registered");", true);   

然而,当我查看HTML源代码时,事件并不存在。因此,警报框从未显示。这是我实际的aspx文件的设置:

<igmisc:WebAsyncRefreshPanel ID="WebAsyncRefreshPanel1" runat="server">
    <asp:FormView ID="FormView1" runat="server" DataSourceID="odsCurrentIncident">
        <EditItemTemplate>
            <uc1:SearchSEDUsers ID="SearchSEDUsers1" runat="server" />
        </EditItemTemplate>
        <ItemTemplate>
            Hello
            <asp:Button ID="Button1" runat="server" CommandName="Edit" Text="Button" />
        </ItemTemplate>
    </asp:FormView>
</igmisc:WebAsyncRefreshPanel>

有人知道我在这里可能错过了什么吗?

问题回答

您是否尝试过使用RegisterClientSideScript?您可以始终使用IsClientSideScriptRegistered检查脚本的密钥,以确保不会多次注册它。

我假设异步面板正在执行部分页面返回,这不会触发mechansim重新生成启动脚本。也许对ASP.Net页面生命周期和CLR有更好理解的人可以填补这些空白。

对我来说,这很好resizeChartMid()是一个函数名。

ScriptManager.RegisterStartupScript(this, typeof(string), "getchart48", "resizeChartMid();", true);

试试这个,我也有同样的问题

ScriptManager.RegisterClientScriptBlock(MyBase.Page, Me.[GetType](),
                     ("dialogJavascript" + this.ID), "alert("Registered");", True)

这对我很管用!





相关问题
热门标签