Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更新控件中的asp.net面板可见性_C#_Asp.net_Updatepanel - Fatal编程技术网

C# 更新控件中的asp.net面板可见性

C# 更新控件中的asp.net面板可见性,c#,asp.net,updatepanel,C#,Asp.net,Updatepanel,我正在创建一个移动菜单样式的功能 单击图像按钮,如果当前未显示菜单,则应显示菜单,如果当前显示菜单,则应隐藏它 <div class="menuicon"> <asp:ImageButton ID="menubtn" ImageUrl="~/assets/menu.png" OnClick="menubtn_Click" runat="server" /> <asp:HiddenField ID="hd

我正在创建一个移动菜单样式的功能

单击图像按钮,如果当前未显示菜单,则应显示菜单,如果当前显示菜单,则应隐藏它

<div class="menuicon">
                <asp:ImageButton ID="menubtn" ImageUrl="~/assets/menu.png" OnClick="menubtn_Click" runat="server" />
                <asp:HiddenField ID="hdfMenuStatus" runat="server" Value="menudown" />
            </div>
           <div class="menulist">
                <asp:Panel ID="panMenuContainer" runat="server">
                    <ul>
                        <li>
                            <a href="UserAuthentication">Login</a>
                        </li>
                    </ul>
                </asp:Panel>
            </div>
这工作非常好,但只要我将menuicon和menulist div封装在更新面板中,它就会停止工作:

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>
                    <div class="menuicon">
                        <asp:ImageButton ID="menubtn" ImageUrl="~/assets/menu.png" OnClick="menubtn_Click" runat="server" />
                        <asp:HiddenField ID="hdfMenuStatus" runat="server" Value="menudown" />
                    </div>
                    <div class="menulist">
                        <asp:Panel ID="panMenuContainer" runat="server">
                            <ul>
                                <li>
                                    <a href="UserAuthentication">Login</a>
                                </li>
                            </ul>
                        </asp:Panel>
                    </div>
                </ContentTemplate>
            </asp:UpdatePanel>



我还使用异步触发器将menubtn放在更新面板之外,但这也不起作用

<div class="menuicon">
                        <asp:ImageButton ID="menubtn" ImageUrl="~/assets/menu.png" OnClick="menubtn_Click" runat="server" />
                        <asp:HiddenField ID="hdfMenuStatus" runat="server" Value="menudown" />
                    </div>
            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>
                    <div class="menulist">
                        <asp:Panel ID="panMenuContainer" runat="server">
                            <ul>
                                <li>
                                    <a href="UserAuthentication">Login</a>
                                </li>
                            </ul>
                        </asp:Panel>
                    </div>
                </ContentTemplate>
                <Triggers>
                    <asp:AsyncPostBackTrigger ControlID="menubtn" EventName="Click" />
                </Triggers>
            </asp:UpdatePanel>



仅仅为了显示或隐藏菜单而进行页面回发似乎完全不能令人满意


有人能提出解决这个问题的建议吗?我确信我以前在更新面板中工作过面板可见性。

当您将更新面板更改为如下所示时会发生什么

<form id="form1" runat="server">
    <ajaxToolkit:ToolkitScriptManager ID="tsm" runat="server"></ajaxToolkit:ToolkitScriptManager>
    <div>
        <asp:UpdatePanel runat="server" ID="UpdatePanel1" UpdateMode="Conditional">
    </div>
    ....the rest of your code etc..

..其余的代码等。。

我需要看看html标记的其余部分是什么样子的,但是我刚刚测试了这个,有没有
和表单标记中包含的UpdatePanel,它可以工作

您需要更改一些代码作为示例

<div class="menuicon">
                    <asp:ImageButton ID="menubtn" ImageUrl="~/assets/menu.png" OnClick="menubtn_Click" runat="server" />
                    <asp:HiddenField ID="hdfMenuStatus" runat="server" Value="menudown" />
                </div>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <div class="menulist">
                    <asp:Panel ID="panMenuContainer" runat="server">
                        <ul>
                            <li>
                                <a href="UserAuthentication">Login</a>
                            </li>
                        </ul>
                    </asp:Panel>
                </div>
            </ContentTemplate>
            <Triggers>
                <asp:PostBackTrigger ControlID="menubtn" EventName="Click" />
            </Triggers>
        </asp:UpdatePanel>




谢谢你的建议-不幸的是,这没有任何区别:仍然无法使用更新面板。@Dave你是否尝试过查看此链接?你可能忽略了一些东西,实际上看起来你需要将更新面板包装成一个
。我想我们使用的是不同的版本:我的AjaxToolkit没有脚本管理器我使用的是标准的asp:ScriptManager,但不幸的是它不起作用。asp:ScriptManager和ajax ScriptManager是两种不同的东西耶-我无法开始理解它,但我很高兴它起作用了!谢谢您的帮助和建议。请参阅我的更新。我在示例中没有使用此选项,因为UpdatePanel会导致部分回发,我不确定您为什么需要触发异步回发。也许您可以解释一下\
<div class="menuicon">
                    <asp:ImageButton ID="menubtn" ImageUrl="~/assets/menu.png" OnClick="menubtn_Click" runat="server" />
                    <asp:HiddenField ID="hdfMenuStatus" runat="server" Value="menudown" />
                </div>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <div class="menulist">
                    <asp:Panel ID="panMenuContainer" runat="server">
                        <ul>
                            <li>
                                <a href="UserAuthentication">Login</a>
                            </li>
                        </ul>
                    </asp:Panel>
                </div>
            </ContentTemplate>
            <Triggers>
                <asp:PostBackTrigger ControlID="menubtn" EventName="Click" />
            </Triggers>
        </asp:UpdatePanel>