我有一个中继器,其中有一个链接和一个隐藏面板(以及其他一些东西)。我希望这个链接(LinkButton)显示我的面板。这就是我所拥有的:
<asp:Repeater id="repeater1" runat="server">
<ItemTemplate>
....
<asp:LinkButton runat="server" ID="lnkTransits" Text="test" CommandName="Transits"/>
<asp:Panel CssClass="transits" id="pnlTransits" runat="server" Visible="False">
....
</asp:Panel>
</ItemTemplate>
</asp:Repeater>
代码隐藏(在 OnInit 中绑定 itemcommand):
private void FlightList_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item ||
e.Item.ItemType == ListItemType.AlternatingItem)
{
if (e.CommandName == "Transits")
{
var item = e.Item.DataItem;
//var panel = item.FindControl("pnl" + e.CommandName);
//panel.Visible = true;
}
}
}
DataItem 是空的,每个帖子都说应该是这样,所以我放弃了这个想法。但我希望的是,可能有一些索引值或某种方法可以找到“最接近”或我可以使用的东西。我想要的只是使面板可见(并希望使用相同的按钮也能够隐藏它,也许使用命令参数“隐藏”“显示”)。
如果这不是解决此问题的方法,那很好,最好的方法是什么?
提前致谢