2012-05-09 3 views
0

及び2)は
私の質問を拒否することです:はどのように私は1つだけ選択するようにユーザーを制限することができます承認または却下されている行のチェックボックス?両方ではありません。- 私は2つのcheckboxs 1)承認を持っているのGridView以下にjQueryの

<asp:GridView ID="routePlanGridView" runat="server" AutoGenerateColumns="False" >   
      <Columns>   
      <HeaderTemplate>[Select All]<br /> 
       <asp:CheckBox ID="chkApproveAll" runat="server" onclick="SelectAll(this, '.selectapprove'); " /> 
      </HeaderTemplate> 
      <asp:TemplateField HeaderText="approve"> 
       <ItemTemplate> 
        <div class="selectreason"> 
         <asp:CheckBox CssClass="selectme" ID="chkapprove" runat="server" Checked="false"> 
         </asp:CheckBox> 
        </div> 
       </ItemTemplate> 
      </asp:TemplateField> 
      <asp:TemplateField HeaderText="reject"> 
<HeaderTemplate>[Select All]<br /> 
       <asp:CheckBox ID="chkRejectAll" runat="server" onclick="SelectAll(this, '.selectreject'); " /> 
      </HeaderTemplate> 

       <ItemTemplate> 
        <div class="selectreason"> 
         <asp:CheckBox CssClass="selectme" ID="chkreject" runat="server" Checked="false"> 
         </asp:CheckBox> 
        </div> 
       </ItemTemplate> 
      </asp:TemplateField> 
      </Columns> 
     </asp:GridView> 
+0

ラジオボタンではなくチェックボックスを使用する理由は何ですか? –

+0

私が使用している理由は、ヘッダーの両方の列(承認/拒否)のチェックボックス(私はコードをポストしていない)を持っているため、ユーザーはすべてを選択できますか、 ...意味がある? –

+0

私の質問を、gridviewのheadertemplateのチェックボックスで更新しました –

答えて

0

チェックボックスの代わりにラジオボタンを使用します。アイテム作成イベントのコードの中で、ラジオボタンオブジェクトを見つけ、行ごとに異なるグループ名を設定します。これにより、列ごとではなく行ごとのオプションを選択できます。

1

フォームの仕組みを理解していれば、ラジオボタンを使用する必要があります。彼らはあなたがすでに望むように正確に働きます。また、ユーザーにとってより直感的になります。

ラジオボタンは "名前" と呼ばれる余分な属性がグループにそれらを置くために

+0

私の質問が更新されました。また、James Johnsonに私のコメントをお読みください –

+0

私はあなたの状況をより良く理解しています。私は彼らの行動によって課された条件がまだ真であることを反映するために、彼らの外観を更新するボタンで行くだろう。私は、チェックボックスを明示的にチェックするか独立してチェックを外すことができるので、あなたが混乱させようとしている動作を維持しています。最後に、これはすべて個人的な好みです。がんばろう – Weavermount

0

マークアップ

<asp:GridView ID="routePlanGridView" runat="server" AutoGenerateColumns="False"> 
    <Columns> 
     <headertemplate>[Select All]<br /> 
       <asp:CheckBox ID="chkApproveAll" runat="server" onclick="SelectAll(this, '.selectapprove'); " /> 
      </headertemplate> 
     <asp:TemplateField HeaderText="approve"> 
      <ItemTemplate> 
       <div class="selectreason"> 
        <asp:CheckBox CssClass="selectme" onclick="return SelectSingle(this);" ID="chkapprove" runat="server" Checked="false"> 
        </asp:CheckBox> 
       </div> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="reject"> 
      <HeaderTemplate> 
       [Select All]<br /> 
       <asp:CheckBox ID="chkRejectAll" runat="server" onclick="SelectAll(this, '.selectreject'); " /> 
      </HeaderTemplate> 
      <ItemTemplate> 
       <div class="selectreason"> 
        <asp:CheckBox CssClass="selectme" ID="chkreject" runat="server" onclick="return SelectSingle(this);" Checked="false"> 
        </asp:CheckBox> 
       </div> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 

を使用されている[編集] JavaScript

<script language="javascript" type="text/javascript"> 
    function SelectSingle(CtlId) { 
     debugger; 
     var chkreject, chkapprove; 
     if (CtlId.id.indexOf('chkreject') > -1) { 
      chkreject = document.getElementById(CtlId.id).checked; 
      chkapprove = document.getElementById(CtlId.id.replace('chkreject', 'chkapprove')).checked; 
     } 
     else if (CtlId.id.indexOf('chkapprove') > -1) { 
      chkapprove = document.getElementById(CtlId.id).checked; 
      chkreject = document.getElementById(CtlId.id.replace('chkapprove', 'chkreject')).checked; 
     } 
     if (chkapprove == true && chkreject == true) 
      alert('both checked'); 
     else 
      alert('both not checked'); 
    } 
</script>