javascript - ASP.NET 控件后面的代码未执行

标签 javascript c# jquery asp.net

我正在 ASP.NET 中显示 JQuery 模态窗口。我使用模式窗口作为注册表单。我正在使用 .NET 控件,例如 checkboxbuttons。然而,我遇到的问题是,即使我有两个控件的代码隐藏,它也永远不会到达代码隐藏。例如,我有一个名为 checkAll 的“全选”复选框。在后面的代码中,我有以下代码来检查所有内容:

protected void checkAll_CheckedChanged(object sender, EventArgs e)
    {
        if (checkAll.Checked == true)
        {
            foreach (ListItem li in cbList.Items)
            {
                li.Selected = true;
            }
        }
        else
        {
            foreach (ListItem li in cbList.Items)
            {
                li.Selected = false;
            }
        }
    }

但是,当我调试并在第一个 if 语句中停止时,它永远不会出现。

此外,在按钮的 addNewUser_Click 事件中,我想加载 checkboxList,我现在在 Page_Load 中执行此操作。但是,当我将相同的代码放在按钮后面的代码中时,它永远不会加载。

这是 aspx 代码:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master"  AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="TAP._Default" %>
<%@ Register Assembly="Trirand.Web" Namespace="Trirand.Web.UI.WebControls"   TagPrefix="cc1" %>
<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
 <header>

 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
 <script src="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.9/jquery-ui.js" type="text/javascript"></script>
 <link href="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.9/themes/start/jquery-ui.css"
rel="stylesheet" type="text/css" />
<script type="text/javascript">
       $("[id*=addNewUser]").live("click", function () {
    $("#adduser").dialog({
        title: "Add User",
        resizable: false,
        buttons: {
            Save: function () {
                $(this).dialog('save');
            },
            Cancel: function () {
                $(this).dialog('close');
            }
        }
    });
    return false;
});
</script>
</header>
<br />
 <asp:Label ID="lblNoRole" runat="server" Text="No role has been assigned yet." Visible="False" CssClass="alert-link"></asp:Label>
<div id="clientManager" runat="server">
 <div class="text">Clients: <asp:DropDownList ID="ddclients" runat="server" BackColor="#F6F1DB" ForeColor="#7d6754" CssClass="ddl" Height="30px"></asp:DropDownList> <asp:Button ID="addNewUser" runat="server" Text="Add user" CssClass="btn-danger" Height="25px" Width="98px" OnClick="addNewUser_Click" />
     <div id="adduser" style="display: none">
     First Name:
         <asp:TextBox ID="firstName" runat="server"></asp:TextBox><br />
     Last Name:
         <asp:TextBox ID="lastName" runat="server"></asp:TextBox><br />
     Email address:
         <asp:TextBox ID="email" runat="server" TextMode="Email">  </asp:TextBox><br />
Phone Number:
         <asp:TextBox ID="phone" runat="server" TextMode="Phone"></asp:TextBox>
Password:
         <asp:TextBox ID="pwd" runat="server" TextMode="Password"></asp:TextBox><br />
Confirm password:
         <asp:TextBox ID="pwd2" runat="server" TextMode="Password"></asp:TextBox><br />
Client(s): Select all <asp:CheckBox ID="checkAll" runat="server" OnCheckedChanged="checkAll_CheckedChanged" /><br /><br />
         <asp:Panel ID="Panel1" runat="server" ScrollBars="Auto" Height="150px"> <asp:CheckBoxList ID="cbList" runat="server" Font-Size="10px" ></asp:CheckBoxList></asp:Panel>

 </div>
 </div>
</div><hr id="h2" runat="server" />
<div id="clientUser" runat="server">
    <div class="text">Client User DIV</div>
</div><hr id="h1" runat="server" />
<div id="administrator" runat="server">
    <div class="text">Administrator DIV</div>
</div>

请注意,JavaScript 函数目前仅显示模式窗口。它没有做任何其他事情。

关于为什么我无法访问 asp.net 控件背后的代码有什么建议吗?

谢谢

最佳答案

当值更改时,该复选框不会自动导致回发,因此将无法访问您的服务器端代码。您可以通过设置 AutoPostBack 使其在值更改时启动回发。属性为 true。

但是我建议您这样做。想想看,为什么要让服务器参与进来只是为了检查客户端上的某些复选框?相反,您应该使用一些 JavaScript 在客户端上处理它。 jQuery 完全有能力做到这一点。

$('#checkAll').change(function(){
    //use jQuery to change the checkbox values here
});

确保您在“checkAll”上发送了 ClientIdMode="static",以便客户端上的 ID 与服务器上的 ID 相匹配。

关于javascript - ASP.NET 控件后面的代码未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28552272/

相关文章:

javascript - 提交 HTML 表单以在新页面中显示输入的信息

javascript - 使用jquery访问json数据来设置值

javascript - 当您无法控制时如何规避同源策略错误

c# - Razor @{ ... } 与 @ 调用 RenderPartial

c# - 用于单元测试的模拟 gRPC 响应流 - C#

javascript - 如何根据另一个元素的左值将一个类添加到一个元素?

html - 使用递归,如何迭代对象来生成 HTML?

javascript - 我如何通过 $.ajax 调用使用成功函数

jquery - 动态相关的选择菜单

c# - 将来自两个互斥数据集的值合并到一个单独的数据集中