Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.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# 如何从无序列表项调用代码隐藏代码_C#_Asp.net_Drop Down Menu_Code Behind - Fatal编程技术网

C# 如何从无序列表项调用代码隐藏代码

C# 如何从无序列表项调用代码隐藏代码,c#,asp.net,drop-down-menu,code-behind,C#,Asp.net,Drop Down Menu,Code Behind,它不断地给我一个错误,函数找不到 我希望在单击“注销”时清除asp.net页面中的所有会话集,不仅仅是文本,而是整个LI,并重定向到另一个页面 请帮助我解决此问题li元素-即使使用runat=“server”-仍然是HTML元素。当您使用该元素的onclick属性时,它会将其视为对客户端JavaScript函数(未定义)的调用 隐藏的代码是服务器端的,不能从HTML元素执行。您需要ASP元素才能工作。服务器上运行ASP.NET代码中的注销\u单击方法。li标记上的onclick属性指的是在客户端

它不断地给我一个错误,函数找不到

我希望在单击“注销”时清除asp.net页面中的所有会话集,不仅仅是文本,而是整个
LI
,并重定向到另一个页面


请帮助我解决此问题

li元素-即使使用runat=“server”-仍然是HTML元素。当您使用该元素的onclick属性时,它会将其视为对客户端JavaScript函数(未定义)的调用


隐藏的代码是服务器端的,不能从HTML元素执行。您需要ASP元素才能工作。

服务器上运行ASP.NET代码中的
注销\u单击
方法。
li
标记上的
onclick
属性指的是在客户端上运行的名为
logout\u Click
的JavaScript函数

为了在服务器上运行代码,您需要回发到服务器。为了测试这一点,您可以如下更改您的ASPX代码(这可能会引入一些设计更改,您必须在以后进行修复):


  • 控件,以便运行
    注销\u Click
    方法。

    我更喜欢Marcus的答案(添加服务器控件“LinkButton”)。但是,如果您希望保留LI并仍然调用服务器端方法,作为解决方法,您可以执行以下操作:

    在表单中添加隐藏按钮。

    <li id="liDrop">
         <asp:LinkButton runat="server" 
                        OnClick="logout_Click" 
                        Text="LogOut" />
    </li>
    
    
    
    将您的LI更改为

    <asp:button id="btnId" OnClick="logout_Click" style="display:none"></asp:button>
    
    注销
  • Javascript

    <li id="liDrop" onclick="logout();"><span class="ondrop">Logout</span></li>
    
    函数注销()
    {
    document.getElementById(“”)。单击();
    }
    
    我不确定您是否在webforms应用程序或MVC中,但您需要一个可以进行onclick的元素。锚或链接按钮可以工作,只需将其放入列表项中。很遗憾,我无法将dropdownlist嵌套在dropdownlist中。看到Markus的答案,他解释得更详细一些。它只是在不执行代码的情况下重新加载页面:/answer已更新。确保获取按钮的客户端id。我使用了
    CliendIDMode=“Static”
    ,然后还分配了一个
    CssClass
    ,并修改了代码,代码正常工作。非常感谢。
    <asp:button id="btnId" OnClick="logout_Click" style="display:none"></asp:button>
    
    <li id="liDrop" onclick="logout();"><span class="ondrop">Logout</span></li>
    
    function logout()
    {
       document.getElementById('<%= btnId.ClientID %>').click();
    }