Pregunta

Estoy usando DotNetNuke 4.9.2 y estoy corriendo en un problema extraño.

Tengo un MultiView en el módulo que estoy desarrollando, y en uno de los puntos de vista tienen un GridView que se une a un ObjectDataSource.

En una vista separada, tengo varios botones que activarán la SelectMethod del ObjectDataSource en el segundo punto de vista y después fije ésta vista activa. Que todo trabaja muy bien, hasta que la cuadrícula se ordena en el segundo punto de vista - lo que provoca una devolución de datos y el ODS alguna manera recoge su SelectMethod originales. Los SelectParameters que se asignan al mismo tiempo en el código subyacente se pegan sin embargo.

Me parece que el ObjectDataSource debe estar recordando la SelectMethod en estado de vista, ¿no debería?

<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);
}

Cuando corro ese botón de clic, la cuadrícula muestra como se esperaba. Cuando hago clic en uno de los encabezados de columna para el GridView y ruptura en la carga de la página para inspeccionar el SelectMethod, que ha vuelto a la declarada en el marcado.

Cualquier sugerencia en cuanto a lo que mi problema podría estar aquí?

¿Fue útil?

Solución 2

terminé trabajando en torno al tema sólo por el uso de una propiedad de página para sostener el SelectMethod, y luego ponerlo a cero en cada devolución de datos ...

protected string MySelectMethod
{
    get
    {
        return (string)ViewState["MySelectMethod"] ?? MySearchResultsDataSource.SelectMethod;
    }
    set
    {
        ViewState["MySelectMethod"] = value;

        MySearchResultsDataSource.SelectMethod = value;

    }
}

protected void Page_Load(object sender, EventArgs e)
{
    if (IsPostBack)
    {
        MySearchResultsDataSource.SelectMethod = MySelectMethod;
    }
}

protected void MyButton_Click(object sender, EventArgs e)
{
    MySelectMethod = "MyNewMethod";
}

Aún no sabe por qué ese prop SelectMethod no se pega en una devolución de datos en el arma nuclear. Estoy seguro de que esto ha funcionado bien para mí en proyectos ASP.NET rectas en el pasado ...

Otros consejos

supongo que se haya asegurado de que no está restableciendo .SelectMethod cuando se vuelve a cargar la página?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top