【发布时间】:2021-03-13 19:24:51
【问题描述】:
我正在使用 ASP.NET CheckBoxList 进行多项选择,并且我在页面加载时将这个 CheckBoxList 绑定在服务器端,并且我有一个输入按钮作为编辑按钮,我想在单击编辑时显示选中的复选框列表项按钮。为此,我正在尝试这样:
复选框
<div id="checkboxplant" style="width: 100%; height: 150px; overflow: auto">
<asp:CheckBoxList ID="chkPlantsAddNew" CssClass="MyClass" runat="server">
</asp:CheckBoxList></div>
AJAX
function OnSuccessRecordCall(data, status) {
result = Record;
if (result != undefined && result.length > 0) {
var checkboxList = $("[id*=chkPlantsAddNew]");
checkboxList.each(function () {
if ($(this).val() == $.trim(result.PLANT_CODE_EDIT)) {
$(this).prop("checked", true);
}
});
}
}
第一个和第二个表格行的 DOM
<tr>
<td><input id="chkPlantsAddNew_0" type="checkbox" name="chkPlantsAddNew$0"><label for="chkPlantsAddNew_0">1001</label></td>
</tr>
<tr>
<td><input id="chkPlantsAddNew_1" type="checkbox" name="chkPlantsAddNew$1"><label for="chkPlantsAddNew_1">CPP</label></td>
</tr>
在浏览器上调试时,我可以看到 CheckBoxList 值没有显示任何值,它只是显示"" 字符串。为什么这样?不知道为什么会这样?
请看下面的屏幕截图,因为我选择了我的第一个tr,因为该文本是 1001,值是 0,但是在调试时我们得到的是空字符串,因此我无法检查我的特定项目?
请帮助我哪里做错了?
【问题讨论】:
-
您突出显示的
value是table元素的part属性的值。它与 CheckBoxList 的值无关。我认为您可能选择了不正确的 DOM 元素来表示 CheckBoxList 的选定值,但是自从我使用 Web 表单以来已经很长时间了。 -
如果您可以将 CheckBoxList 的渲染 HTML 显示为代码格式的文本而不是图片,将会很有帮助。然后我们也许可以告诉你要选择的正确 DOM 元素是什么。
-
好的,我正在更新我的问题
-
@HereticMonkey 请检查我的更新问题我已更新 DOM 以获取复选框列表行项目
-
好吧,从那里你可以看到复选框没有设置
value属性,因此搜索$(this).val() ==将不会匹配任何内容。这是 Web 表单的问题;微软没有注意应该如何使用 HTML,只是输出足够多的 HTML,看起来还不错,它们可以在后端匹配。我假设您要查找的值是“1001”或“CPP”或这些可见金额之一?