Frage

Ich bin mit DotNetNuke 4.9.2 und in ein ungeradees Problem leite.

Ich habe eine Multiview in dem Modul, das ich entwickle, und in einer der Ansichten haben eine Gridview, die an ein Object gebunden ist.

In einer separaten Ansicht, ich habe mehrere Schaltflächen, die die Select des Object in der zweiten Ansicht wechseln werden und setzen dann diese Ansicht aktiv. Das alles funktioniert gut, bis das Raster auf dem zweiten Blick sortiert ist - die irgendwie ein Postback und die ODS verursacht nimmt seine ursprüngliche Select auf. Die Select, die zur gleichen Zeit in der zugeordneten Code-behind bleibt aber.

Es scheint mir, dass die Object sollte die Select in Ansichtszustand in Erinnerung rufen, sollte es nicht?

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

Wenn ich auf diese Schaltfläche klicken ausführen, zeigt das Raster wie erwartet. Als ich für das Gridview auf eine der Spaltenüberschriften klicken und in der Seite zu laden, brechen die Select zu inspizieren, um es zu dem in der Markup deklariert zurückgekehrt ist.

Irgendwelche Vorschläge, was könnte mein Problem hier sein?

War es hilfreich?

Lösung 2

Ich landete arbeiten, um das Problem nur durch eine Seite Eigenschaft mit dem Select zu halten, und sie dann auf jedem Postback Zurücksetzen ...

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

Immer noch nicht sicher, warum das Select prop nicht auf einem Postbacks in Nuke kleben bleibt. Ich bin sicher, dass dies in gerade asp.net Projekten in der Vergangenheit gut für mich gearbeitet hat ...

Andere Tipps

Ich vermute, Sie sichergestellt haben, dass Sie nicht .SelectMethod Zurücksetzen, wenn die Seite neu geladen?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top