0

リピーターがあり、タグの内側にチェックボックスがあります。この.Checkedプロパティは、リピーターの ItemDataBound イベント内に設定します。問題は、args.Item.FindControl("checkboxSelect");私を返すことですnull

HTMLは次のとおりです。

<asp:Repeater ID="productRepeater" runat="server" OnItemDataBound="productRepeater_ItemDataBound">
    <ItemTemplate>
        <tr class="hand">                                
            <td class="hyperLink center-text width50px">
                <fieldset data-role="controlgroup" id="divCheckbox">
                    <input type="checkbox" name="checkboxSelect" id="checkboxSelect" class="custom" />
                    <label for="checkboxSelect">
                    </label>
                </fieldset>                                    
            </td>
        </tr>
    </ItemTemplate>
</asp:Repeater>

そして productRepeater_ItemDataBound メソッド:

protected void productRepeater_ItemDataBound(object sender, RepeaterItemEventArgs args)
{
    CheckBox checkboxSelect = (CheckBox)args.Item.FindControl("checkboxSelect");
}

問題の原因<fieldset data-role="controlgroup" id="divCheckbox"><td>. 現在の状況でコントロールを取得する方法について何か提案はありますか?

4

1 に答える 1

4

FindControlプレーンな HTML タグではなく、サーバー側のコントロールのみを検索できます。したがって、この特定の Repeater では、何も見つからない可能性があります。ただし、いつでも HTML タグをサーバー側のコントロールに変えることができますrunat:

<input runat="server" type="checkbox" name="checkboxSelect" id="checkboxSelect" class="custom" />

これで、everycheckboxSelectがコントロールのコレクションに追加され、FindControlそれを見つけることができるようになります。

于 2013-06-26T14:37:55.800 に答える