我有一个嵌套的转发器,我想在其标头中传递值。这是我到目前为止的代码.. 主要问题是标题模板中控件的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..
答案 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。