2011-08-03 11 views
0

DataGrid.Iに2つのテンプレート列を作成しました。これらの列にラジオボタンを割り当てました。最初のラジオボタンのjavascript関数を呼び出して1つの選択肢を作成しました。 しかし、私は2番目のラジオボタンのためのjavascript関数を呼び出すことによって単一の選択を行うことはできません。また、私はお互いに独立して実行することはできません。DataGridの列2つのラジオボタンを使用

 <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> 

答えて

0

が、それは、サーバー側のコントロールとしてラジオボタンを実行するために必要ですか? runat = serverを削除し、asp.netがIDを変更できないようにするために、同じグループの一部であるラジオボタンの代わりに一意のグループ名を発行すれば、管理が簡単です。次に、サーバーコントロールの値のプロパティではなく、[[RadioGroupName]]を使用して選択した値を確認できます。

これは、グループが正常に動作するようにして、ラジオボタンを簡単に選択できるようにJavaScriptを作成します。

+0

まず、あなたのおかげで感謝します。あなたが言及したように、私はどのように私のJavaScriptコード内で修正を行うことができますか? – Selo

+0

あなたのjavascriptで何をしようとしていたかはわかりませんでした。あなたの目標が単なるグループとして機能するようにするには、すべてのラジオボタンの名前の値を同じにすることができればjavascriptを不要にする必要があります。これはrunat = "server"属性を削除することで実現できますそれらの名前を同じにします。 –

関連する問題