Я использую DotNetNuke 4.9.2 и нахожусь в нечетной проблеме.DotNetNuke ObjectDataSource.SelectMethod не сохраняется в viewstate
У меня есть MultiView в модуле, который я разрабатываю, и в одном из представлений есть GridView, привязанный к объекту ObjectDataSource.
В отдельном представлении у меня есть несколько кнопок, которые будут переключать SelectMethod объекта ObjectDataSource во втором представлении, а затем установить этот вид активным. Все работает отлично, пока сетка не будет сортироваться по второму виду, что вызывает обратную передачу, и ODS каким-то образом подбирает свой оригинальный метод SelectMethod. SelectParameters, которые назначаются одновременно в патче кода.
Мне кажется, что ObjectDataSource должен помнить SelectMethod в viewstate, не так ли?
<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, он возвращается к объявлению, указанному в разметке.
Любые предложения относительно того, что моя проблема может быть здесь?
Я не слишком хорошо знаком с MultiView ... является объектом ObjectDataSource внутри одного из представлений? Остается ли проблема, если вы полностью выберете MultiView из уравнения? – Bryan
Я пытался переместить ODS за пределы мультивиза - все равно не повезло. В прошлом это хорошо работало в стандартном asp.net - так что я предполагаю, что что-то в ядерном оружии вмешивается. –