<asp:ScriptManager ID="ScriptManager1" runat="server">
            </asp:ScriptManager>
            <asp:UpdatePanel ID="UpdatePanelLogout" runat="server" RenderMode="Block" UpdateMode="Conditional">
            <ContentTemplate>
            <fieldset style="border:0px;">
                <p id="LoginP" runat="server"><b>您好,<span title="<% =LoginUserName %>" class="mingzi" id="ff"><% =LoginUserName %></span></b> 
                <span class="exit">
                    <asp:LinkButton ID="Logout" runat="server" OnClick="Logout_Click" >退出</asp:LinkButton>
                </span>
                </p>
            </fieldset>
            </ContentTemplate>
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="Logout" EventName="Click" />
            </Triggers>
            </asp:UpdatePanel>
            <asp:UpdatePanel ID="UpdatePanelLogin" runat="server" RenderMode="Block" UpdateMode="Conditional">
            <ContentTemplate>
            <fieldset style="border:0px;">
                <p id="P2" runat="server">
                    用户名: <span class="username">
                <input id="Username" name="Username" type="text" runat="server" />
                </span> 密码: <span class="password">
                <input id="Password" name="Password" type="password" runat="server" />
                </span> <span class="submit">
                <asp:ImageButton ID="Login" runat="server"  ImageUrl="~/images/btn_1.gif" ToolTip="登录" OnClick="Logon_Click" />
                </span> <a href="registration.aspx"><img src="../images/btn_2.gif" alt="注册" title="注册" /></a>
                </p>
            </fieldset>
            </ContentTemplate>
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="Login" EventName="Click" />
            </Triggers>
            </asp:UpdatePanel>以上是放了2个updatepanel 控件,在 Logout 的 Logout_Click 中把 UpdatePanelLogin 隐藏;
在Logoin 的 Login_Click 中把 UpdatePanelLogout 隐藏;问题是,不管是哪种情况,updatepanel 部分的隐藏内容始终不改变,一定要手动刷新一次,或者点击2次才会起效果。然后我又把2个合并为一个:            <asp:ScriptManager ID="ScriptManager1" runat="server">
            </asp:ScriptManager>
            <asp:UpdatePanel ID="UpdatePanel" runat="server" RenderMode="Block" UpdateMode="Conditional">
            <ContentTemplate>
            <fieldset style="border:0px;">
                <p id="LoginP" runat="server"><b>您好,<span title="<% =LoginUserName %>" class="mingzi" id="ff"><% =LoginUserName %></span></b> 
                <span class="exit">
                    <asp:LinkButton ID="Logout" runat="server" OnClick="Logout_Click" >退出</asp:LinkButton>
                </span>
                </p>
                <p id="LogoutP" runat="server">
                    用户名: <span class="username">
                <input id="Username" name="Username" type="text" runat="server" />
                </span> 密码: <span class="password">
                <input id="Password" name="Password" type="password" runat="server" />
                </span> <span class="submit">
                <asp:ImageButton ID="Login" runat="server"  ImageUrl="~/images/btn_1.gif" ToolTip="登录" OnClick="Logon_Click" />
                </span> <a href="registration.aspx"><img src="../images/btn_2.gif" alt="注册" title="注册" /></a>
                </p>
            </fieldset>
            </ContentTemplate>
             </asp:UpdatePanel>
 
在 Logout 的 Logout_Click 中把 Logoin 隐藏;
在Logoin 的 Login_Click 中把 Logout anelLogout 隐藏;但是同样的问题发生。仅当把 <asp:LinkButton ID="Logout" runat="server" OnClick="Logout_Click" >退出</asp:LinkButton> 换成html的<a>元素,且不是服务器控件的时候 登录才能达到我预想的效果。如何解决? 为什么会这样呢?

解决方案 »

  1.   

    "换成html的<a>元素"
    这相当于刷页面了.不要去隐藏UpdatePanel,直接在后台做一次控件状态的切换就OK了.弄这么复杂做什么?两个Panel,登录的时候显示Panel1,登出的时候显示Panel2
    (Panel1 和 Panel2中放置你想要的控件)
    然后全部放置在一个UpdatePanel下
      

  2.   


    麻烦看下我第2段  我是把两个东西放到一个 updatepanel 里面了啊 
    可是问题还是存在啊 
      

  3.   

    我最初的代码是这样的,这个时候登录是没有问题的。            <asp:ScriptManager ID="ScriptManager1" runat="server">
                </asp:ScriptManager>
                <asp:UpdatePanel ID="UpdatePanelLogin" runat="server" RenderMode="Block" UpdateMode="Conditional">
                <ContentTemplate>
                <fieldset style="border:0px;">
                    <p id="LoginP" runat="server"><b>您好,<span title="<% =LoginUserName %>" class="mingzi" id="ff"><% =LoginUserName %></span></b> <span class="exit"><a href="#" onclick="fnZhaopinIndexLogout();return false;">退出</a></span></p>
                    <p id="LogoutP" runat="server">
                    用户名: <span class="username">
                    <input id="Username" name="Username" type="text" runat="server" />
                    </span> 密码: <span class="password">
                    <input id="Password" name="Password" type="password" runat="server" />
                    </span> <span class="submit">
                    <asp:ImageButton ID="Logon" runat="server"  ImageUrl="~/images/btn_1.gif" ToolTip="登录" OnClick="Logon_Click" />
                    </span> <a href="registration.aspx"><img src="../images/btn_2.gif" alt="注册" title="注册" /></a>
                    </p>
                </fieldset>
                </ContentTemplate>
                </asp:UpdatePanel>然后我把“退出”的<a> 换成服务器控件就始终不行了!这是为什么?
      

  4.   

    按照2楼所说,吧代码换成这样:
                <asp:ScriptManager ID="ScriptManager1" runat="server">
                </asp:ScriptManager>
                <asp:UpdatePanel ID="UpdatePanelLogin" runat="server" RenderMode="Block" UpdateMode="Conditional">
                <ContentTemplate>
                <fieldset style="border:0px;">
                    <p id="LoginP" runat="server"><b>您好,<span title="<% =LoginUserName %>" class="mingzi" id="ff"><% =LoginUserName %></span></b> 
                        <span class="exit">
                            <asp:LinkButton ID="logout" runat="server" OnClick="Logout_Click" >退出</asp:LinkButton>
                        </span>
                    </p>
                    <p id="LogoutP" runat="server">
                    用户名: <span class="username">
                    <input id="Username" name="Username" type="text" runat="server" />
                    </span> 密码: <span class="password">
                    <input id="Password" name="Password" type="password" runat="server" />
                    </span> <span class="submit">
                    <asp:ImageButton ID="Logon" runat="server"  ImageUrl="~/images/btn_1.gif" ToolTip="登录" OnClick="Logon_Click" />
                    </span> <a href="registration.aspx"><img src="../images/btn_2.gif" alt="注册" title="注册" /></a>
                    </p>
                </fieldset>
                </ContentTemplate>
                </asp:UpdatePanel>在调试运行的时候没有问题,编译后就不行了。 为什么?