2014-02-27 69 views
0

在這條線Edit_English.Text = aEdit_English引發此錯誤;在下面的代碼中...System.NullReferenceException:對象不設置爲一個對象的一個​​實例。投擲錯誤

protected void btnEdit_Click(object sender, EventArgs e) 
{ 
    Button EditButton = (Button)EditLoginView.FindControl("EditButton"); 
    Button SaveButton = (Button)EditLoginView.FindControl("SaveButton"); 
     TitleLanguage.ActiveViewIndex = 2; 
     LanguageView.ActiveViewIndex = 2; 
     EditButton.Visible = false; 
     SaveButton.Visible = true; 
     TextBox Edit_English = (TextBox)ContentLoginView.FindControl("Edit_English"); 
     TextBox Edit_French = (TextBox)ContentLoginView.FindControl("Edit_French"); 
     TextBox Edit_FrenchT = (TextBox)TitleLoginView.FindControl("Edit_FrenchT"); 
     TextBox Edit_EnglishT = (TextBox)TitleLoginView.FindControl("Edit_EnglishT"); 
     Edit_English.Text = aEdit_English; 
     Edit_French.Text = aEdit_French; 
     Edit_EnglishT.Text = aEdit_EnglishT; 
     Edit_FrenchT.Text = aEdit_FrenchT; 




} 

這是頁面標記以及它。當我輸入visual studio時,訪問contentloginview沒有問題。

<asp:MultiView ID="LanguageView" runat="server"> 
      <asp:View ID="English" runat="server"><asp:Label ID="en_content" runat="server"/></asp:View> 
      <asp:View ID="French" runat="server"><asp:Label ID="fr_content" runat="server"/></asp:View> 
    <asp:View ID="Edit" runat="server"> 
     <asp:LoginView ID="ContentLoginView" runat="server"> 
      <LoggedInTemplate> 
       <asp:TextBox ID="Edit_English" runat="server" TextMode="MultiLine" /> 
       <asp:TextBox ID="Edit_French" runat="server" TextMode="MultiLine" /> 
      </LoggedInTemplate> 
     </asp:LoginView> 
    </asp:View> 

回答

0
TextBox Edit_English = (TextBox)ContentLoginView.FindControl("Edit_English"); 

該行將返回null,並且您認爲它已正確找到。

FindControl僅搜索可直接控制FindControl被稱爲對下控制。在這種情況下ContentLoginViewLoggedInTemplate大概是什麼扔在東西的扳手。

It could also be an issue with Master Pages.

+0

這是正確的......仍然有通過登錄視圖訪問那就麻煩了......也許是因爲它也是一個多視角?無論哪種方式,我找到了另一個工作。謝謝! – trowse

0

此錯誤正在發生的事情,因爲沒有aEdit_English字符串變量(或其他物體可以與的ToString被轉換())。 aEdit_English爲null。

我建議試圖找到這個變量在聲明那裏,並確保它包含適當的範圍之內。

0

問題:有一個在你的設計頁面ID Edit_EnglishT沒有控制權。

所以Edit_EnglisT在下面的語句變成null

TextBox Edit_EnglishT = (TextBox)TitleLoginView.FindControl("Edit_EnglishT"); 
當您嘗試調用任何成員(例如: Text屬性)

thhrows上述EXCETION。

解決方案:努力值分配給Edit_EnglishT控制你只需驗證閹之前真的發現還是不行。

試試這個:

if(Edit_EnglishT != null) 
    Edit_EnglishT.Text = aEdit_EnglishT; 
相關問題