溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

asp.net 關于提示“當前上下文中不存在名稱"XXX"”的一種情況的解決辦法

發布時間:2020-07-26 12:57:22 來源:網絡 閱讀:4855 作者:我不會抽煙 欄目:編程語言

今天遇到了一個問題,用了很多方法去找原因,最后終于發現了問題的所在。

出現的提示就是標題上寫的:“當前上下文中不存在名稱"XXX"”

我開始一直以為是我自定義控件引用的時候出現了問題,因為報錯上寫的名稱我在前臺中都能找到相應的ID,這可是好幾百個啊,不可能我寫錯ID的問題,因為我是復制的。所以我以為是在編譯這之前的某處出現了問題,一上午就圍繞著自定義控件去排查了,事實證明我的反應還是有點慢半拍。

下午的時候我放棄了排查自定義控件,而是轉到了前臺,因為之前有一個很龐大的<table>,因為項目需要,我把整個<table>放入了<asp:Repeater>里,當前,如果要想使用<asp:Repeater>的話,當然要使用<ItemTemplate>這個標簽(具體的Repeater控件如何使用,在我前一篇文章里有寫),后來總之我就排除了所有其它可能影響的因素,只在<table>外面加了一個<asp:Repeater><ItemTemplate>,最后編譯的時候仍然報本文的錯誤,到這我只能認為確實是如報錯所述的“找不到名稱”。找問題的過程就是這么糾結的,我也是在剛才快下班的時候才最終找到,解決的。

解決辦法就是一切包含在<ItemTemplate>這類標簽里的控件,如果你想在后臺引用其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>

這樣一個前臺代碼,如果想在后臺給label1這個控件賦值的話,需要如下的引用方法:


((Label)Repeater1.Items[0].FindControl("label1")).Text = "可以正確賦值";


出現這個問題的原因可能很多,我這里只是其中一種,總之無論遇到什么問題,大家都要安下心來,多去嘗試,最后總會解決的。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女