私はDotNetNuke 4.9.2を使用していますが、奇妙な問題が発生しています。DotNetNuke ObjectDataSource.SelectMethodがビューステートに保存されていません
私は開発しているモジュールにMultiViewを持っており、ビューの1つにObjectDataSourceにバインドされているGridViewがあります。
別のビューでは、2番目のビューでObjectDataSourceのSelectMethodを切り替えて、そのビューをアクティブにするボタンがいくつかあります。 2番目のビューでグリッドがソートされ、ポストバックが発生し、ODSが元のSelectMethodをピックアップするまで、すべて正常に動作します。コードビハインドで同時に割り当てられるSelectParameters。
ObjectDataSourceがviewstateのSelectMethodを覚えているはずですね。そうではありませんか?
<asp:ObjectDataSource runat="server" ID="MyObjectDataSource" SelectMethod="MyFirstSelectMethod" TypeName="Whatever"></asp:ObjectDataSource>
protected void Button1_Click(object sender, EventArgs e)
{
MyObjectDataSource.SelectMethod = "MyNewMethod";
// more code here to change the parameters as well...
MyMultiView.SetActiveView(MyView2);
}
このボタンをクリックすると、グリッドが期待通りに表示されます。 GridViewの列ヘッダーの1つをクリックし、SelectMethodを検査するためにページの読み込みを中断すると、マークアップで宣言されたものに戻りました。
私の問題が何であるかについてのご意見はありますか?
私はあまりにもMultiViewに精通していない...ビューの1つの中のObjectDataSourceですか?方程式の中からMultiViewを取り除くと、まだ問題は起こりますか? – Bryan
私はマルチビューの外でODSを動かしてみました - まだ運がありません。これは、標準asp.netでこれまで私にとってうまくいきました。つまり、核の中の何かが干渉していると推測しています。 –