C# ASP:放置在Repeater的ItemTemplate中时,文本不在上下文中

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.net页面,它的行为与其他页面不同,我似乎无法找到原因

遗憾的是,出于商业原因,我不能发布很多代码,我知道这将限制用户的帮助能力

我有一个页面,我有一个隐藏和复选框和其他不重要的东西

比如:

<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!";
}