我有一个表在下拉列表更改时在某些c#代码隐藏中动态创建。这个表中有9列。前8个应该在一个组中。另一个属性。选择最后一个属性后,我希望前8个未选中。当检查前8个中的任何一个时,我希望取消选中最后一个属性。我添加了一些javascript它可以工作,但它导致表加载速度极慢。如果有更简单的方法,请告诉我。谢谢!
通过c#
添加javascript函数调用attr1.Attributes.Add("onClick", "uncheckOK(" + rowCount + ");");
attr2.Attributes.Add("onClick", "uncheckOK(" + rowCount + ");");
attr3.Attributes.Add("onClick", "uncheckOK(" + rowCount + ");");
attr4.Attributes.Add("onClick", "uncheckOK(" + rowCount + ");");
attr5.Attributes.Add("onClick", "uncheckOK(" + rowCount + ");");
attr6.Attributes.Add("onClick", "uncheckOK(" + rowCount + ");");
attr7.Attributes.Add("onClick", "uncheckOK(" + rowCount + ");");
attr8.Attributes.Add("onClick", "uncheckOK(" + rowCount + ");");
attr9.Attributes.Add("onClick", "uncheckAttr(" + rowCount + ");");
取消选中
的功能function uncheckAttr(row) {
var chk1 = document.getElementById("MainContent_attr1-" + row);
chk1.checked = false;
var chk2 = document.getElementById("MainContent_attr2-" + row);
chk2.checked = false;
var chk3 = document.getElementById("MainContent_attr3-" + row);
chk3.checked = false;
var chk4 = document.getElementById("MainContent_attr4-" + row);
chk4.checked = false;
var chk5 = document.getElementById("MainContent_attr5-" + row);
chk5.checked = false;
var chk6 = document.getElementById("MainContent_attr6-" + row);
chk6.checked = false;
var chk7 = document.getElementById("MainContent_attr7-" + row);
chk7.checked = false;
var chk8 = document.getElementById("MainContent_attr8-" + row);
chk8.checked = false;
}
function uncheckOK(row) {
var chk9 = document.getElementById("MainContent_attr9-" + row);
chk9.checked = false;
}
答案 0 :(得分:0)
您不能通过标准HTML执行此操作吗?制作一组单选按钮 - 为第1-8列提供相同的name
属性,并为第9个属性提供不同的name
。你应该只能选择其中一个。
或者,删除那些丑陋的代码并使用一些jQuery。类似的东西:
$('table.your-table input[type=radio]').click(function(){
$('table.your-table input[type=radio]').not(this).removeAttr('checked');
});
编辑:实际上HTML选项不起作用,但我鼓励你通过jQuery来实现这一点,它就是它的基础。
答案 1 :(得分:0)
function uncheck() {
var clickSource = event.srcElement;
if (clickSource != null) {
var fullid = clickSource.name;
if (fullid != null) {
if (fullid.indexOf('attr') != -1) {
var checkboxid = fullid.substring(fullid.indexOf('attr'));
var row = checkboxid.substring(checkboxid.indexOf('-') + 1);
var attr = checkboxid.substring(checkboxid.indexOf('-') - 1, checkboxid.indexOf('-'));
if (attr == '9') {
uncheckAttr(row);
}
else {
uncheckOK(row);
}
}
}
}
}