嵌套转发器在标头模板中传递值

时间:2010-03-07 05:41:13

标签: asp.net repeater nested-repeater

我有一个嵌套的转发器,我想在其标头中传递值。这是我到目前为止的代码.. 主要问题是标题模板中控件的id也来自代码。

<asp:Repeater ID="RptrProgCategory" runat="server">
    <ItemTemplate>
        <asp:Repeater ID="RptrPrograms" runat="server">
            <HeaderTemplate><input type="hidden" id="<%= questvalue%>"/></HeaderTemplate>
            <ItemTemplate>                      
                <a href="/" id="catid" class="off"><%# DataBinder.Eval(Container.DataItem, "cat") %></a>
            </ItemTemplate>
        </asp:Repeater>
    </ItemTemplate>
</asp:Repeater>

我希望从后面的代码获得questvalue中的值。知道如何实现这个目标吗?

编辑:我想把这个值放在DataTable中并在Repeater bcoz中绑定该值我希望这样的输出可能是&lt;%#DataBinder.Eval(Container.DataItem,“questvalue” )%&gt;而不是&lt;%= questvalue%&gt; ..但在这种情况下我无法找到控件

Category1(id of hidden field )
  subcat1
  subcat2
  subcat3
Category2(id of hidden field)
  subcat4
  subcat5..and so on..

2 个答案:

答案 0 :(得分:0)

Repeater mainRepeater = this.Page.FindControl("RptrProgCategory") as Repeater;
Repeater nestedRepeater = mainRepeater.FindControl("RptrProgCategory") as Repeater;

然后,您可以在nestedRepeater中为questValue执行FindControl。 将一个runat ='server'添加到questvalue,以便您可以在后面的代码中访问它。

我是从内存中写的,语法可能不正确,但它应该让你朝着正确的方向前进。

答案 1 :(得分:0)

将转发器中控件的id设置为mycontrolId - 然后在OnItemDataBound上 - (甚至OnItemCreated)使用findcontrol(“mycontrolId”) - 然后将控件的id更改为questvalue param。