0

コンテンツページにデータを含むグリッドビューがあります.マスターページボタンクリックでグリッドビューのデータソースをデータテーブルとして取得する必要があります.followingは私のコードです

string DicPageName = Page.GetType().Name;
        GridView gv1;
        DataTable DT;

        if (DicPageName == "dictionaries_abs_aspx")
        {
            gv1 = (GridView)ContentPlaceHolder2.FindControl("GridView1");
            if (gv1 != null)
            {
                if (gv1.Visible)
                {
                    DT = new DataTable();

                    DT = (DataTable)gv1.DataSource;

                }
            }
        }

しかし、DT は null.plz ヘルプを返します

4

1 に答える 1

0

上記のコードは、ボタン クリック イベント ハンドラーに配置されていると述べました。それは常にポストバックにあります。

Web データ バインドされたコントロールのデータ ソースは、ポストバックでは null です。必要に応じて、データソース(データベースなど)を再度クエリする必要があります(またはセッションに保存します)。

興味がない: なぜそれが必要なのですか? たぶん、より良いアプローチがあります。

于 2012-09-19T07:58:28.140 に答える