c# - 检查单选按钮时禁用下拉列表?
问题描述
我的网络表单有 2 个控件,drpBloodType 和 rbUnknownBloodType。
每当检查按钮时,我都需要禁用列表。我试过了:
protected void rbUnknownBloodType_CheckedChanged(object sender, EventArgs e)
{
drpBloodType.Enabled = false;
}
和
<script>
$(function () {
$('#rbUnknownBloodType').change(function () {
if ($(this).is(':checked')) {
$('#drpBloodType').attr('disabled', 'disabled');
} else {
$('#drpBloodType').removeAttr('disabled');
}
});
});
</script>
但都没有奏效。
解决方案
如果您有以下 aspx 标记,则可以在代码隐藏中执行以下操作。注意AutoPostBack="true"
CheckBox 上的使用。
<asp:DropDownList ID="BloodType" runat="server">
<asp:ListItem Text="Select..." Value=""></asp:ListItem>
<asp:ListItem Text="A+" Value="A+"></asp:ListItem>
<asp:ListItem Text="A-" Value="A-"></asp:ListItem>
<asp:ListItem Text="B+" Value="B+"></asp:ListItem>
<asp:ListItem Text="B-" Value="B-"></asp:ListItem>
<asp:ListItem Text="O+" Value="O+"></asp:ListItem>
<asp:ListItem Text="O-" Value="O-"></asp:ListItem>
<asp:ListItem Text="AB+" Value="AB+"></asp:ListItem>
<asp:ListItem Text="AB-" Value="AB-"></asp:ListItem>
</asp:DropDownList>
<asp:CheckBox ID="UnknownBloodType" OnCheckedChanged="UnknownBloodType_CheckedChanged"
runat="server" AutoPostBack="true" />
后面的代码。
protected void UnknownBloodType_CheckedChanged(object sender, EventArgs e)
{
//set the dll to default
BloodType.SelectedValue = "";
//cast the sender back to a checkbox and disable the dll based on it's checked status
BloodType.Enabled = !((CheckBox)sender).Checked;
}
或 jquery 解决方案。这会保存一个 PostBack,但它会在 PostBack 之后失去禁用状态。%= UnknownBloodType.ClientID %>
仅适用于 aspx 页面本身。如果您不想使用它,请查看ClientIdMode=Static
<script>
$(function () {
$('#<%= UnknownBloodType.ClientID %>').change(function () {
var dll = $('#<%= BloodType.ClientID %>');
if ($(this).is(':checked')) {
dll.val('');
dll.attr('disabled', 'disabled');
} else {
dll.removeAttr('disabled');
}
});
});
</script>
推荐阅读
- java - Java 逻辑错误 - 未显示第十位小数
- python - TPUEstimator 不更新元权重
- rxjs - RxJS forkJoin 链接请求?
- python - 使用 API 提取 5 年的 Twitter 数据
- node.js - Azure 应用服务上 Angular 应用的服务器端渲染导致 SNAT 端口耗尽
- lua - GLua 的问题:“GetModel() 不是字符串库的一部分”
- c - 非全局使用的 getopt (C) 中的错误?
- kubernetes - 如何在 k8s 中为非服务帐户创建不记名令牌
- android - 使用 Retrofit2 和 Flow 同时进行多个 API 调用
- php - 条件为假时多维数组中的array_slice