使用C#调用HTML复选框上的函数而不提交

时间:2017-04-23 14:12:40

标签: c# asp.net checkbox

我正在使用Visual Studio 2015来创建ASP.NET网站。我有一个默认隐藏的DIV,如果用户选中复选框,我试图显示它。我想知道是否有一种方法使用C#在用户选中该框后立即显示DIV。如果没有首次提交表单,我似乎无法找到识别状态变化的方法。我可以使用JavaScript轻松实现这一点,但这是一个单一的分配,需要在C#中实现功能。 这是checkBox的HTML:

<form id="form1" runat="server">
    Limit Stations To My Location<asp:CheckBox ID="limitOptions" runat="server" onClick="toggleOptions()" /> 
    <br /><br />
    <div id="locationOptions" runat="server" hidden="hidden">
        Radius (KM)<asp:TextBox ID="radius" runat="server" Text="100"></asp:TextBox>
        <asp:Button ID="updateList" runat="server" Text="Button" OnClick="updateList_Click"/>
    </div>

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您可以在代码后面使用C#执行此操作。将AutoPostBack事件添加到CheckBox并将Panel设置为true并处理更改。请注意,div在HTML中成为<asp:CheckBox ID="limitOptions" runat="server" OnCheckedChanged="limitOptions_CheckedChanged" AutoPostBack="true" /> <asp:Panel ID="locationOptions" runat="server" Visible="false"> Radius (KM) <asp:TextBox ID="radius" runat="server" Text="100"></asp:TextBox> </asp:Panel>

<asp:CheckBox ID="limitOptions" runat="server" onclick="toggleOptions()" />

<div id="locationOptions" runat="server" style="display: none">
    Radius (KM)<asp:TextBox ID="radius" runat="server" Text="100"></asp:TextBox>
</div>

<script type="text/javascript">
    function toggleOptions() {
        var id = '#<% =locationOptions.ClientID %>';
        if ($(id).css('display') == 'none') {
            $(id).slideDown('fast', function () { });
        } else {
            $(id).slideUp('fast', function () { });
        }
    }
</script>

然而,这会导致PostBack,所以只使用JavaScript可能是更好的选择。

ThisList.ItemsSource = folderItem;