C# ASP:放置在Repeater的ItemTemplate中时,文本不在上下文中
我有一个asp.net页面,它的行为与其他页面不同,我似乎无法找到原因 遗憾的是,出于商业原因,我不能发布很多代码,我知道这将限制用户的帮助能力 我有一个页面,我有一个隐藏和复选框和其他不重要的东西 比如:C# ASP:放置在Repeater的ItemTemplate中时,文本不在上下文中,c#,asp.net,C#,Asp.net,我有一个asp.net页面,它的行为与其他页面不同,我似乎无法找到原因 遗憾的是,出于商业原因,我不能发布很多代码,我知道这将限制用户的帮助能力 我有一个页面,我有一个隐藏和复选框和其他不重要的东西 比如: <asp:Repeater id="GoodRepeater" runat="server" OnItemDataBound="GoodRepeater_OnItemDataBound"> <ItemTemplate> <asp:Literal id
<asp:Repeater id="GoodRepeater" runat="server" OnItemDataBound="GoodRepeater_OnItemDataBound">
<ItemTemplate>
<asp:Literal id="litHappyLiteral" runat="server" />
<!-- Other junk that doesn't matter -->
</ItemTemplate>
</asp:Repeater>
在这些条件下,“litSadLiteral”在当前上下文中不存在
我知道我做错了什么(见下面的答案),但是如果有人仍然愿意解释为什么一个文字在放在一个转发器的ItemTemplate的范围内时就会从可到达的上下文中消失,我将不胜感激。我意识到了这是怎么回事 在我的“工作”示例中,我没有直接达到我的字面意思。我先“去找”了 在工作中,我不仅仅有:
litHappyLiteral.Text = "Happy!";
我实际上有:
Literal litHappyLiteral = (e.Item.FindControl("litHappyLiteral") as Literal);
if(litHappyLiteral != null) {
litHappyLiteral.Text = "Happy!";
}
现在我在另一页上做了,一切都正常了。
很抱歉占用了大家的时间
我不太清楚这里的流程,我应该删除这个问题还是保留它,以防这个错误/解决方案将来会对某人有所帮助?你能分享你的代码吗?重复程序是否可以访问SMESAD?您使用的是母版页吗?是使SMESAD可访问的转发器吗?-对使用母版页对
litHappyLiteral.Text = "Happy!";
Literal litHappyLiteral = (e.Item.FindControl("litHappyLiteral") as Literal);
if(litHappyLiteral != null) {
litHappyLiteral.Text = "Happy!";
}