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

标签 c# asp.net drop-down-menu code-behind

<ul runat="server" id="ulDrop">
    <li>Update?</li>
    <li>
        <asp:DropDownList ID="yesno" ClientIDMode="Static" runat="server">
            <asp:ListItem>YES</asp:ListItem>
            <asp:ListItem>NO</asp:ListItem>
        </asp:DropDownList>
    </li>
    <li runat="server" id="liDrop" onclick="logout_Click"><span class="ondrop">Logout</span></li>
</ul>

我正在尝试从代码隐藏处理 LI 中的 onclick 方法,因此我添加了以下 C# 代码:

public void logout_Click(object sender, EventArgs e)
{
    Session.RemoveAll();
    Response.Redirect("log-in.aspx");
}

它一直给我一个错误,找不到该函数。

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

请帮我解决问题

最佳答案

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

向您的表单添加隐藏按钮。

<asp:button id="btnId" OnClick="logout_Click" style="display:none"></asp:button>

将您的 LI 更改为

<li id="liDrop" onclick="logout();"><span class="ondrop">Logout</span></li>

Javascript

function logout()
{
   document.getElementById('<%= btnId.ClientID %>').click();
}

关于c# - 如何从无序列表项调用代码隐藏代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33653570/

相关文章:

c# - 我正在使用反射来获取 ASP.NET 中的属性名称和值需要一些优化建议

c# - Google maps api 不适用于回发

java - 如何在获得焦点时制作 JComboBox 下拉列表?

jQuery e.stopPropagation() - 如何在不完全破坏 dropbox 功能的情况下使用?

javascript - 两个文本框日期不应大于 JavaScript 中的当前日期

javascript - 停止下拉宽度扩大

c# - Rebus 和 RabbitMQ - 使用多个独立的 Rebus 实例?

c# - 在 C# 中使用 Lua 的最有效方法是什么?

c# - SQL C#,命令(查询)执行两次

c# - 使用 "Specified"模式在 WSDL 中设置 minOccurs=0 不起作用