2

GridView を初めて読み込むときは問題ありません。次に、列を並べ替えると、GridView が行なしで返されます。デバッガーは、DataSource テーブルに行があることを示していますが、GridView 自体には行がありません。(GridView を動的に作成していることに注意してください。ただし、私の知る限り、それは問題ではありません。)

これらはコード行です:

gv.DataSource = dv;    
gv.DataBind();

特にない。

これらは、コードをステップ実行するときにデバッガーが表示する値です。

最初の行の前:

dv.Table.Rows.Count 23

((System.Data.DataView)(gv.DataSource)).Table.Rows.Count    '((System.Data.DataView)(((System.Web.UI.WebControls.BaseDataBoundControl)(gv)).DataSource))' is null

gv.Rows.Count   0

最初の行の後:

dv.Table.Rows.Count 23

((System.Data.DataView)(gv.DataSource)).Table.Rows.Count    23

gv.Rows.Count   0

コードの 2 行目以降:

dv.Table.Rows.Count 23

((System.Data.DataView)(gv.DataSource)).Table.Rows.Count    23

gv.Rows.Count   0
4

3 に答える 3

0

解決済み:この問題に遭遇する可能性がある人には、これが問題の原因となった正確な理由はわかりませんが、GridView 列を動的に作成する場合は、ポストバックで列を再作成する必要があります。その再現中、この特定のロードでは、常に ASC をソートするように設定していました (これにより、2 番目にソート ルーチンが実行され、適切にソートされます)。データを並べ替えるために戻ると、ASC への手動設定は、DESC に切り替えるデフォルトの動作と競合し、何らかの理由で、DataSource の DataView にデータがあったとしても、DataBind の GridView からすべての行が削除されます。これは問題を引き起こすべきではありませんでしたが、問題が発生しました。PageLoad で手動ソートを削除すると、機能しました (実際には機能しませんでしたが、それがアプリケーションの雑草になっています)。

于 2013-03-30T10:19:53.687 に答える
0

多分これらはあなたが探しているドロイドです

ヒント: これは、イベントを手動で処理するための MSDN の記事でSortingあり、DataSource を手動でバインドする場合に行う必要があります。

于 2013-03-29T14:49:36.313 に答える