1

我有一个带有单选按钮列的表格。我设法使单选按钮列动态插入到单元格中(如果重要,则为 div)。但是,在回发 innerHtml 尚未使用“checked”属性进行更新。

你能给我一个想法,如果单选按钮已被选中,我该如何找出(在服务器上)?

更多信息:这是在更新面板内的用户控件上。

将是关于我的主题的好帖子,但仍然无济于事

4

4 回答 4

0

查看Form.Request("radio-name") != null

只有在检查时才会得到一个非空值。

于 2009-11-23T16:25:35.533 回答
0

确保您的页面元素在回发时正确重建。任何第一次插入单选按钮的绑定过程都必须重新运行,然后才能第二次访问它们。

于 2009-11-23T16:53:28.767 回答
0

这是一个工作示例,首先我通过您链接的方法将收音机添加到我的网络表单:

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。

于 2009-11-23T18:06:46.997 回答
0

您不能使用标准 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 文件中的属性公开,并将其作为控件重用。

于 2009-11-24T17:55:19.927 回答