2014-02-27 49 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; 
相关问题