0

私のコードでは、リピーターはデータリストにネストされていますデータリストにはチェックボックスとラジオボタンが含まれています。ここでは、リピーターの制御を見つけることができません。リピーターの制御を見つける方法を教えてください。

私のデザインは次のようなものです:

<asp:DataList ID="DatalistQues" runat="server" DataKeyField="QuestionID" OnSelectedIndexChanged="DataListText_SelectedIndexChanged"
Width="100%" OnItemCommand="Repeater1_ItemCommand">
<ItemTemplate>
<table width="100%">
<tr>
<td style="width: 13%">
<asp:LinkButton ID="LinkButton6" runat="server" CommandName="Select" CssClass="ppppp">
<asp:Image ID="Image1" runat="server" ImageUrl='<% #Eval("Image")%>' Height="60px"
Width="65px" />
</asp:LinkButton>
</td>
<td style="width: 87%">
<asp:LinkButton ID="LinkButton7" runat="server" CommandName="Select" CssClass="ppppp">
<asp:Label ID="Label3" runat="server" Text='<% #Eval("name")%>'></asp:Label>
</asp:LinkButton>
</td>
</tr>
    <tr>
        <td style="width: 13%">
        </td>
        <td style="width: 87%; white-space: pre-line">
            <asp:Label ID="TextBox2" runat="server" Text='<% #Eval("Question")%>'></asp:Label>
        </td>
    </tr>
    <tr>
        <td style="width: 13%">
        </td>
        <td style="width: 87%">
            <script type="text/javascript" language="javascript">

                function fnCheckUnCheck(objId) {
                    var grd = document.getElementById("TabContainer1_TabPanel2_DatalistQues");
                    alert(grd);
                    //Collect A
                    var rdoArray = grd.getElementsByTagName("input");
                    alert(rdoArray);
                    for (i = 0; i <= rdoArray.length - 1; i++) {
                        if (rdoArray[i].type == 'radio') {
                            if (rdoArray[i].id != objId) {
                                rdoArray[i].checked = false;
                            }
                        }
                    }
                }  
            </script>
            <asp:Repeater ID="RepeaterQues" runat="server" OnItemCommand="Repeater1_ItemCommand">
                <HeaderTemplate>
                </HeaderTemplate>
                <ItemTemplate>
                    <table style="border: none">
                        <tr>
                            <td style="width: 100px">
                                <asp:LinkButton ID="LinkButton23" runat="server" CommandName="radiob">
                                    <asp:RadioButton ID="RadioButton1" runat="server" onclick="fnCheckUnCheck(this.id);" /></asp:LinkButton><asp:LinkButton
                                        ID="LinkButton24" runat="server" CommandName="checkb">
                                        <asp:CheckBox ID="CheckBox1" runat="server" Text='<%#Eval("QOption") %>' /></asp:LinkButton>
                            </td>
                            <td style="width: 100px">
                                <asp:Label ID="empname" Text='<%#Eval("QOption") %>' runat="server"></asp:Label>
                            </td>
                        </tr>
                    </table>
                </ItemTemplate>
            </asp:Repeater>
        </td>
    </tr>

</table>
</ItemTemplate>
</asp:DataList>
4

2 に答える 2

0

Repeater の Item コマンドでは、まず送信者の名前付けコンテナーを見つける必要があります

データリスト項目が返されます。

次に、返されたリストアイテムで、その特定のデータリストアイテムのリピーターを見つける必要があります。リピーターが見つかったら、リピーターのアイテムのコントロールを簡単に見つけることができます

于 2013-08-01T05:03:17.380 に答える