在DataGrid中使用第二列单选按钮

时间:2011-08-03 09:20:40

标签: javascript asp.net

我在DataGrid中创建了两个模板列。我为这些列分配了单选按钮。我通过调用第一个单选按钮的javascript函数创建了单个选择。  但是,我不能通过调用第二个单选按钮的javascript函数来进行单一选择。而且,我不能彼此独立运行。

      <asp:TemplateColumn HeaderText="">
     <ItemTemplate>
      <input type="radio" runat="server" id="rd1" onclick="SelectOne(this,'DataGrid')" VALUE="rd1"
       NAME="RadioGroup1" />
     </ItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText="">

     <ItemTemplate>
      <input type="radio" runat="server" id="rd2" onclick="test(this,'DataGrid')" VALUE="rd2" 
      NAME="RadioGroup2" />      
     </ItemTemplate>
    </asp:TemplateColumn>

Javascript代码:

  <script  language="javascript">
  function SelectOne(rd1,DataGrid)
  {
  all=document.getElementsByTagName("input");
  for(i=0;i<all.length;i++)
  {
  if(all.type=="radio")
   {
   var count=all.id.indexOf(DataGrid+'__ctl');
  if(count!=-1)
   {
    all.checked=false;
   }
   }
  }
   rd1.checked=true;
  }
  </script>

1 个答案:

答案 0 :(得分:0)

是否有必要将单选按钮作为服务器端控件运行?如果删除runat = server并且只为每个属于同一组的单选按钮发出一个唯一的组名,则可能更容易管理,因为这会阻止asp.net更改ID。然后,您可以使用Request [“RadioGroupName”]而不是服务器控件值属性来检查所选值。

这将使群组正常工作,并使您的javascript更简单地选择单选按钮。