私はサイトのページを調べましたが、私の問題に十分な一般的なものを見つけることができないようです. 他の誰かが書いたコードをデバッグしていて、GridView ステートメントに問題があります。
私の問題は、グリッドビューが常に null であることです。基本的に次のように設定されている LoginView 内のパネルに宣言された GridView があります。
<asp:LoginView ID="LoginView1" runat="server" onviewchanged="LoginView1_ViewChanged">
<AnonymousTemplate> Please <a href="../Default.aspx"> Log In </a></AnonymousTemplate>
<LoggedInTemplate>
<asp:Panel ID="Panel1" runat="server">
<asp:GridView ID="GridView1" runat="server"
AutoGenerateColumns="False" CellPadding="2"
DataSourceID="SqlDataSource1" ForeColor="Black" GridLines="Horizontal"
BackColor="White" BorderColor="#CCCCCC" BorderStyle="None"
BorderWidth="1px" Width="970px" OnRowCommand="GridView1_RowCommand"
PageSize="40" AllowSorting="True">
その後、C#ファイルに次のステートメントがあります
GridView GridView1 = (GridView)LoginView1.FindControl("GridView1");
コードを実行すると、GridView1 で NullRefrenceException が発生します。GridView を参照するためにパネルを掘り下げる必要がありますか、それともメインの LoginView1 セグメントからアクセスできるようにする必要がありますか?
編集:コード スニペットを変更して、匿名テンプレートの情報を含めました。