1

1 ページに銀行口座番号とクレジット カード分割払いリストの aspx c# ページがあります。

ユーザーが銀行振込を希望する場合は、銀行口座を選択します。ユーザーがクレジットカードの分割払いを希望する場合は、銀行口座を選択します。

問題はラジオボタンのグループ名です。ラジオ ボタンをグループ化しておらず、選択したラジオ ボタンの値を取得できませんでした。

これが私のコードです。

これは銀行口座リストです

<asp:Repeater ID="RptBankalar" runat="server">
                        <ItemTemplate>
                            <div class="BankaListBox">
                                <table width="100%" height="100" border="0" cellspacing="0" cellpadding="0">
                                    <tr>
                                        <td width="200" align="center" valign="middle">
                                            <img alt="<%#Eval("BankName").ToString() %>" src="../../Files/<%#Eval("Logo").ToString() %>" /></td>
                                        <td>
                                            <table width="100%" border="0" cellspacing="0" cellpadding="0">
                                                <tr>
                                                    <td width="120" height="22"><strong>Account Owner</strong></td>
                                                    <td width="15"><strong>:</strong></td>
                                                    <td><%#Eval("AcOwner").ToString() %></td>
                                                </tr>
                                                <tr>
                                                    <td width="120" height="22"><strong>Branch No</strong></td>
                                                    <td width="15"><strong>:</strong></td>
                                                    <td><%#Eval("Branch").ToString() %></td>
                                                </tr>
                                                <tr>
                                                    <td width="120" height="22"><strong>Account Number</strong></td>
                                                    <td width="15"><strong>:</strong></td>
                                                    <td><%#Eval("AccountNum").ToString() %></td>
                                                </tr>
                                                <tr>
                                                    <td width="120" height="22"><strong>IBAN</strong></td>
                                                    <td width="15"><strong>:</strong></td>
                                                    <td><%#Eval("Iban").ToString() %></td>
                                                </tr>
                                            </table>
                                        </td>
                                        <td width="100" align="center" valign="middle">
                                            <asp:RadioButton ID="RadioBtn" Text='<%#Eval("id").ToString() %>' runat="server" />
                                        </td>
                                    </tr>
                                </table>
                            </div>
                        </ItemTemplate>
                    </asp:Repeater>

同一ページのクレジットカード分割払い一覧

<asp:Repeater ID="RptTaksitList" OnItemDataBound="RptTaksitList_ItemDataBound" runat="server">
                                            <ItemTemplate>
                                                <tr runat="server" id="arka_tr">
                                                    <td align="center" height="22" width="40" runat="server" id="td1">
                                                        <b style="display: none; visibility: hidden">
                                                            <asp:Literal ID="lt_id" Text='<%#Eval("BankaID").ToString() %>' runat="server"></asp:Literal>
                                                        </b>
                                                        <asp:Literal ID="lt_taksit_sayisi" Text='<%#Eval("TaksitSayisi").ToString() %>' runat="server"></asp:Literal></td>
                                                    <td width="150" runat="server" id="td2">
                                                        <asp:Literal ID="LblSepetTotal" runat="server" Text='<%#Session["SepetUrunToplami"] %>'></asp:Literal></td>
                                                    <td runat="server" id="td3"><b style="display: none; visibility: hidden">
                                                        <asp:Literal ID="lt_komisyon_orani" Text='<%#Eval("KomisyonOrani").ToString() %>' runat="server"></asp:Literal>
                                                    </b>
                                                        <asp:Literal ID="lt_toplam_tutar" runat="server" Text=''></asp:Literal>
                                                        <b style="display: none; visibility: hidden">
                                                            <asp:Literal ID="lt_alt_limit" Text='<%#Eval("AltLimit").ToString() %>' runat="server"></asp:Literal>
                                                        </b>
                                                    </td>
                                                </tr>
                                            </ItemTemplate>
                                        </asp:Repeater>

値を取得してこのラジオ ボタンをグループ化するにはどうすればよいですか。

通常、私は古典的なaspで行いましたが、コーディング言語を変更しました。

よろしくお願いします。

助けてくれてありがとう。

4

3 に答える 3

2

私はスタックで決して助けません。ですから、コミュニティに何度も助けられた後、初めて貢献します。

私はあなたが好きです。もっと簡単な解決策があります。

jQuery ですべてのラジオを選択するだけの場合は、ラジオ ボタンを className の要素 (DIV) で囲みます。

編集: aspnet は、そのように変更したときにビューステートを保持していませんでした。今では問題なく動作します:)

$(document).ready(function () {
    $(".radiofix").each(function () {
        var objRadiosContainer = $(this);
        objRadiosContainer.find("input[type=radio]").each(function () {
            var objRadio = $(this);
            objRadio.change(function () {
                if(objRadio.get(0).checked)
                {
                    objRadiosContainer.find("input[type=radio]").each(function () {
                        if($(this).get(0).id != objRadio.get(0).id)
                        {
                            $(this).get(0).checked = false;
                        }
                    });
                }
            });
        });
    });
});

HTML ファイル (または ASPX ファイル) を見てみましょう。

<asp:Repeater ID="questions" runat="server">
        <ItemTemplate>
            <h3>%# getQuestionNumber() %>) <%# Eval("questionDescription").ToString() %></h3>
            <div class="nameOfTheClass">
                <asp:Repeater ID="answers" runat="server">
                    <ItemTemplate>
                        <asp:RadioButton ID="radioId" runat="server" />
                    </ItemTemplate>
                </asp:Repeater>
            </div>
        </ItemTemplate>

これで問題なく動作します。javascript ファイル (.js) を作成して呼び出し、fixTheRadios.js を指定して、好きな "nameOfTheClass" の名前を選択します。

重要: 更新パネル内のコードはテストしていません。そうすることをお勧めします。

于 2013-12-12T16:20:25.740 に答える
1

これが私のやり方です。

マークアップで、ラジオ ボタンをサーバー側の HTML コントロールとして宣言します。

<input id="rbMyRadio" type="radio"runat="server" class="myClass" />

コードで値にアクセスします。

foreach (RepeaterItem item in RptBankalar.Items)
{
    if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
    {
        HtmlInputRadioButton rbMyRadio = (HtmlInputRadioButton)item.FindControl("rbMyRadio");
        if (rbMyRadio != null && rbMyRadio.Checked)
        {
            //Do tasks
        }
    }
}

グループ化は、ページ ヘッドで jquery を使用して行われます。

<script type="text/javascript">
    $(document).ready(function () {
        $('input[type=radio]').click(function () {
            var cname = $(this).attr('class');

            $('.' + cname).each(function () {
                $(this).prop('checked', false);
            });

            $(this).prop('checked', true);
        });
    });
</script>

そして頭の中でjqueryを参照してください:

<script src="Scripts/jquery-1.8.2.js"></script>
于 2013-08-31T15:11:09.720 に答える
0

非常に遅い回答ですが、リピーターに次のようなラジオボタンを追加することもできます:

        <asp:TemplateColumn>
            <ItemTemplate>
                <div style="text-align: center">
                    <input type="radio" id="rptMyRadio" runat="server" />
                </div>
            </ItemTemplate>
        </asp:TemplateColumn>

次に、スクリプト ブロックに次を追加します。

        $('input[type=radio]').click(function () {
            $('input[type=radio]').removeAttr("checked");
            $(this).prop('checked', true);
        });
于 2014-08-20T08:45:52.320 に答える