gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 10:46:46 24 4
gpt4 key购买 nike

我正在 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com