我正在使用 DotNetNuke 4.9.2 并且遇到了一个奇怪的问题。
我正在开发的模块中有一个 MultiView,其中一个视图中有一个绑定到 ObjectDataSource 的 GridView。
在一个单独的视图中,我有几个按钮可以在第二个视图中切换 ObjectDataSource 的 SelectMethod,然后将该视图设置为活动状态。一切正常,直到网格在第二个视图上排序 - 这会导致回发并且 ODS 以某种方式获取其原始 SelectMethod。但是,在代码隐藏中同时分配的 SelectParameters 仍然存在。
在我看来,ObjectDataSource 应该记住视图状态中的 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 的列标题之一并中断页面加载以检查 SelectMethod 时,它已恢复为标记中声明的标题。
关于我的问题可能在这里的任何建议?