0

我有一个嵌套中继器,我想在它的标题中传递值。到目前为止,这是我的代码。主要问题是标题模板中控件的 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 我希望这样的输出可能是 <%# DataBinder.Eval(Container.DataItem, "questvalue") %> 而不是 <%= questvalue%> ..但在这种情况下,我无法找到控件

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

2 回答 2

0

将转发器中控件的 ID 设置为类似 mycontrolId - 然后在 OnItemDataBound -(甚至 OnItemCreated)上使用 findcontrol("mycontrolId") - 然后将控件的 ID 更改为您的 questvalue 参数。

于 2010-03-07T21:50:42.387 回答
0
Repeater mainRepeater = this.Page.FindControl("RptrProgCategory") as Repeater;
Repeater nestedRepeater = mainRepeater.FindControl("RptrProgCategory") as Repeater;

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

我是凭记忆写的,语法可能不正确,但它应该让你朝着正确的方向前进。

于 2010-03-07T06:02:51.327 回答