0

以下のグリッドビューには、1) 承認と 2) 拒否
の 2 つのチェックボックスがあります。両方ではありません。

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

3 に答える 3

1

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

[編集]

ラジオ ボタンには「name」という追加の属性があり、それらをグループ化するために使用されます

于 2012-05-09T18:13:00.207 に答える
0

Mark Up

<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>
于 2012-05-09T20:41:27.003 に答える
0

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

于 2012-05-09T18:09:44.403 に答える