日期:2014-05-17  浏览次数:20383 次

ClientScript.RegisterStartupScript影响TabContainer的显示
先上代码
aspx file

<body>
    <form id="form1" runat="server">
    <div>
        <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" EnablePartialRendering="true">
        </asp:ToolkitScriptManager>
        <asp:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="0">
            <asp:TabPanel runat="server" HeaderText="TabPanel1" ID="TabPanel1">
                <ContentTemplate>
                    123
                </ContentTemplate>
            </asp:TabPanel>            
        </asp:TabContainer>
        <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
    </div>
    </form>
</body>


code behind

protected void Page_Load(object sender, EventArgs e)
{

}
protected void Button1_Click(object sender, EventArgs e)
{
    ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('a')</script>");
}

由于alert('a')代码在创建TabContainer之前执行,导致弹出对话框后,整个TabContainer控件无显示,点击确定后才显示,请问有没有好的办法让弹出对话框后TabContainer还在那里。
说的不对的地方请大家指出,谢谢各位大牛!

------解决方案--------------------

ClientScript.RegisterStartupScript(this.GetType(), "", "<script>window.onload = function () {alert('load');};</script>");