我有一个带有单选按钮列的表格。我设法使单选按钮列动态插入到单元格中(如果重要,则为 div)。但是,在回发 innerHtml 尚未使用“checked”属性进行更新。
你能给我一个想法,如果单选按钮已被选中,我该如何找出(在服务器上)?
更多信息:这是在更新面板内的用户控件上。
这将是关于我的主题的好帖子,但仍然无济于事
我有一个带有单选按钮列的表格。我设法使单选按钮列动态插入到单元格中(如果重要,则为 div)。但是,在回发 innerHtml 尚未使用“checked”属性进行更新。
你能给我一个想法,如果单选按钮已被选中,我该如何找出(在服务器上)?
更多信息:这是在更新面板内的用户控件上。
这将是关于我的主题的好帖子,但仍然无济于事
查看Form.Request("radio-name") != null
只有在检查时才会得到一个非空值。
确保您的页面元素在回发时正确重建。任何第一次插入单选按钮的绑定过程都必须重新运行,然后才能第二次访问它们。
这是一个工作示例,首先我通过您链接的方法将收音机添加到我的网络表单:
function addRadio()
{
try{
rdo = document.createElement('<input type="radio" name="fldID" />');
}catch(err){
rdo = document.createElement('input');
}
rdo.setAttribute('type','radio');
rdo.setAttribute('name','fldID');
document.getElementById('container').appendChild(rdo);
}
然后在后面的代码中,我只使用下面的代码来获取收音机的值:
string value = Request["fldID"];
因此,请确保您尝试在服务器端获取单选按钮的名称。您应该在服务器端使用名称属性,而不是 id。
您不能使用标准 asp:RadioButton 并使用 javascript 来确保它是互斥的。我之前通过向单选按钮添加自定义属性然后使用 js 函数取消选中具有该属性的所有项目,然后检查选定的项目来完成此操作。这可以解决 IE 问题,该问题阻止 groupname 属性在不同容器中的单选框上工作。
radioButton.InputAttributes.Add("ClientGroupName", "grpRadioList");
radioButton.InputAttributes.Add("onclick",
string.Format(
"javascript:radiobuttonToggle('{0}','ClientGroupName','grpRadioList');"
,radioButton.ClientID));
并使用以下 JS 取消选中所有收音机,然后选中您想要的收音机。请注意,我使用 InputAttributes 而不是 Attributes,因为单选按钮包装在 span 标签内,因此 InputAttributes 用于添加到实际输入控件而不是 span 的项目。
function radiobuttonToggle(selectedRB, attribName, attribValue)
{
var objRadio = document.getElementById(selectedRB);
for(i = 0; i < document.forms[0].elements.length; i++)
{
elm = document.forms[0].elements[i];
if (elm.type == 'radio')
{
if(elm.getAttribute(attribName) == attribValue)
elm.checked = false;
}
}
objRadio.checked = true;
}
然后,您可以将 radioButton.Checked 作为 CS 文件中的属性公开,并将其作为控件重用。