1

ObjectDataSourceにバインドされたGridViewがあり、この行をOnRowDataBound()に配置することで提供される標準ソリューションを使用して、行全体の選択を処理しています。

e.Row.Attributes["onclick"] = this.Page.ClientScript.GetPostBackEventReference(this, "Select$" + e.Row.RowIndex);

行の選択が変更されるたびにObjectDataSourceがヒットしていることに気付いていることを除いて、これらはすべて順調に機能しています。行選択コードの後ろのどこでもBindData()を実行していません。また、選択の結果としてデータが変更されていないため、グリッドを再バインドする必要がある理由がわかりません。グリッドビューにページングと並べ替えを処理させていますが、繰り返しになりますが、選択しても内容は変更されないため、影響はないと思います。

グリッド(非常に少量のデータ)のビューステートをオンにしてみましたが、効果がありませんでした。UpdatePanelをtriggers=falseとして条件付き更新と子に設定しましたが、データは引き続きクエリされますが、画面に更新は発生しません(LOL!)。

そこにいるGridViewの達人は、これを突き刺したいですか?

4

1 に答える 1

1

Page_Load()に次のものがありませんか?

If (!IsPostBack)
{

}

これは、開発者が見逃していることです。イベントを追跡すると、OnPostBackでイベントが発生し、DBコードを呼び出していることがわかります。

于 2009-03-19T20:50:42.053 に答える