我想在服务器端访问HTML control
,但在添加runat= server
时,它会给我一个错误
' chkA1<%#(Container.RecordIndex)%>'不是有效的标识符。
这是我的HTML
<input type="checkbox" runat="server" id="chkA1<%# (Container.RecordIndex)%>" name="chkAC1" style="width: 17px;
height: 17px;" value="<%# (Container.RecordIndex)%>" onclick="AppoveCheckA(this)" />
当我删除runat=server
时,它可以正常运行。
为什么它不能与runat=server
一起使用。任何建议
更新
ID正在相应地更改复选框。这是我写的代码
var checkBoxID;
var status;
var arrA = [];
var arrB = [];
var rowIndex
function AppoveCheckA(chk) {
status = true;
checkBoxID = $(chk).attr("id");
funClientSelectAfter(status, checkBoxID);
}
function AppoveCheckB(chk) {
status = true;
checkBoxID = $(chk).attr("id");
funClientSelectAfter1(status, checkBoxID);
}
function funClientSelectAfter(status, checkBoxID) {
if (status && checkBoxID != null) {
var len = checkBoxID.length;
if (len >= 7) {
rowIndex = checkBoxID.substring(checkBoxID.length - 2, checkBoxID.length);
}
else {
rowIndex = checkBoxID.substring(checkBoxID.length - 1, checkBoxID.length);
}
for (var col = 1; col <= 4; col++) {
if (("chkA" + col + rowIndex) == checkBoxID) {
if (document.getElementById("chkA" + col + rowIndex).checked == true) {
$("#chkA" + col + rowIndex).attr("checked", true);
arrA[rowIndex] = col;
continue;
}
else
arrA[rowIndex] = 0
}
$("#chkA" + col + rowIndex).attr("checked", false);
}
document.getElementById("hidRateA").value = arrA.join();
// alert(document.getElementById("hidRateA").value);
}
}
答案 0 :(得分:1)
ID将成为C#中的强类型标识符。因此ID无法更改,也不能包含无效字符。
简单的解决方案是从id属性中删除它。
<input type="checkbox" runat="server" id="chkA1" name="chkAC1" style="width: 17px; height: 17px;" value="<%# (Container.RecordIndex)%>" onclick="AppoveCheckA(this)" />