2

マスターページにネストされたリピーターがあります。アイテム テンプレートの隠しフィールド。コンテンツページのhiddenfieldの値が欲しい。

<ul class="categories">
                        <li>
                            <div id='cssmenu'>
                                <h4>Categories</h4>
                                <asp:Repeater ID="repcategory" runat="server" OnItemDataBound="repcategory_ItemDataBound">
                                    <HeaderTemplate>
                                        <ul>
                                    </HeaderTemplate>
                                    <ItemTemplate>
                                        <asp:HiddenField ID="hf1" Value='<%# Eval("CategoryID") %>' runat="server" />
                                        <li class="active has-sub">
                                            <a href='#'><span>
                                                <%#Eval("CategoryName") %></span></a>
                                            <asp:Repeater ID="repsubcategory" OnItemDataBound="repsubcategory_ItemDataBound" runat="server">
                                                <HeaderTemplate>
                                                    <ul>
                                                </HeaderTemplate>
                                                <ItemTemplate>
                                                    <asp:HiddenField ID="hf2" Value='<%# Eval("SubCategoryID") %>' runat="server" />
                                                    <li class="has-sub">
                                                        <a href='#'><span>
                                                            <%#Eval("SubCategoryName") %></span></a>
                                                        <asp:Repeater ID="repsubcategory2" runat="server">
                                                            <HeaderTemplate>
                                                                <ul>
                                                            </HeaderTemplate>
                                                            <ItemTemplate>
                                                                <asp:HiddenField ID="hf3" Value='<%# Eval("SubCategory2ID") %>' runat="server" />
                                                                <li>
                                                                    <a href="ClientProductSubCategory2.aspx"><span>
                                                                        <%#Eval("SubCategory2Name") %></span></a>
                                                                </li>
                                                            </ItemTemplate>
                                                            <FooterTemplate>
                                                                </ul>
                                                            </FooterTemplate>
                                                        </asp:Repeater>
                                                    </li>
                                                </ItemTemplate>
                                                <FooterTemplate></ul></FooterTemplate>
                                            </asp:Repeater>
                                        </li>
                                    </ItemTemplate>
                                    <FooterTemplate></ul></FooterTemplate>
                                </asp:Repeater>
                            </div>

コンテンツページに subcategory2id の値が必要で、このようにコード化されています。

 HiddenField hiddensubcategory2id = (HiddenField)Master.FindControl("hf3");
        DataSet ds = new ClientProductView().GetAllProductSubCategory2(hiddensubcategory2id.Value);
        repContent.DataSource = ds;
        repContent.DataBind();

しかし、これは null 値を返しています。この問題を解決するのを手伝ってください

4

1 に答える 1

1

次のように、リピーター オブジェクト内でコントロールを見つけてみてください。

var hiddensubcategory2id = repsubcategory2.FindControl("hf3") as HiddenField;

FindControl()注: 次のように、 a の結果が null かどうかを常に確認する必要があります。

if(hiddensubcategory2id != null)
{
    // Do something with the control you found
}
于 2013-08-15T02:52:47.933 に答える