0

loginView の外にある場合、グリッドビューは正しく表示されます。

ログインビュー内に配置し、以下のコードを使用します

<LoggedInTemplate> 
  <asp:GridView ID="GridView1" runat="server">
  </asp:GridView>          
</LoggedInTemplate>

((GridView)LoginView1.FindControl("GridView1")).DataSource = query;
((GridView)LoginView1.FindControl("GridView1")).DataBind(); 

オブジェクト参照がオブジェクト インスタンスに設定されていません。説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。例外の詳細: System.NullReferenceException: オブジェクト参照がオブジェクトのインスタンスに設定されていません。

ソース エラー:

22 行目: ((GridView)LoginView1.FindControl("GridView1")).DataSource = query;

c#でデータバインドを使用してログイン内にGridViewを表示するには?

4

2 に答える 2

0

これ<LoggedInTemplate />は、ユーザーがログインした後にのみ使用できます。ユーザーがログインする前にグリッドにアクセスしようとすると、NullReferenceExceptionが発生します。次のようなチェックを追加することをお勧めします。

if(Request.IsAuthenticated)
{
    GridView gv = ((GridView)LoginView1.FindControl("GridView1"));
    if(gv != null)
    {
        gv.DataSource = query;
        gv.DataBind();
    }

}
于 2011-03-17T12:16:43.903 に答える
0

ログインがアプリケーションのボタンである場合、そのコード ファイルの最後に記述し、そのテーブルを選択するための 1 つのクエリを作成する必要があります。

このようなもの:

SELECT * FROM [table_name];   // here, you can take table name which you want to bind

その後、dataAdapter にデータセットを入力する必要があり、そのデータセットは次のコードでバインドされます。

ds = databind();
于 2011-03-17T11:44:19.620 に答える