asp.Net「現在のコンテキストに「XXX」という名前が存在しない場合の解決方法について


今日1つの問題に出会って、多くの方法で原因を探して、最後にやっと問題の所在を発見しました.
表示されるヒントは、タイトルに「現在のコンテキストには「XXX」という名前は存在しません」と書かれています.
私はずっと私のカスタムコントロールの引用だと思っていたときに問題が発生しました.新聞に書いた名前を間違えたので、フロントで相応のIDを見つけることができます.これは何百もあります.IDを間違えた問題はありません.私はコピーしたからです.だからコンパイルする前のどこかで問題があったのかと思って、午前中にカスタムコントロールをめぐって調べましたが、私の反応が少し遅いことが証明されました.
午後はカスタムコントロールのチェックをあきらめてフロントに移動しました.前に膨大ながあったので、プロジェクトの必要性で
全体をに入れました.現在、を使いたいなら、もちろんというラベル(具体的なRepeaterコントロールはどのように使うか、前の文章に書いてあります)を使います.その後、とにかく私は他の影響を及ぼす可能性のあるすべての要素を排除し、
の外にを追加しただけで、最後にコンパイルしたときも本明細書のエラーを報告したが、これは確かに報告が間違っているように「名前が見つからない」としか思えなかった.問題を探す過程はこのように葛藤して、私もさっき退勤したばかりの時にやっと最終的に見つけて、解決しました.
解決策は、のようなラベルに含まれるすべてのコントロールです.バックグラウンドでIDを参照するには、FindControl()という方法を使用する必要があります.例を挙げます.
<asp:Repeater ID="Repeater1" runat="server" >
<ItemTemplate>
   <table id="Table1" >
   <tr >
   <td><asp:label id="label1" runat="server" /> </td>
   </tr >
   </table>
</ItemTemplate>
</asp:Repeater>

このようなフロントコードは、label 1というコントロールにバックグラウンドで値を割り当てるには、次のような参照方法が必要です.
((Label)Repeater1.Items[0].FindControl("label1")).Text = "      ";

この問題が発生した原因はたくさんあるかもしれませんが、私のところはその一つにすぎません.とにかくどんな問題があっても、みんな安心して、たくさん試して、最後には必ず解決します.