Domanda

Sto utilizzando DotNetNuke 4.9.2 e sto correndo in un problema strano.

Ho un MultiView nel modulo che sto sviluppando, e in una delle viste hanno una GridView che è destinato a un ObjectDataSource.

In una vista separata, ho vari pulsanti che commuterà il SelectMethod del ObjectDataSource nel 2 ° vista e quindi impostare tale vista attiva. Che tutto funziona bene, fino a quando la griglia è ordinato al 2 ° vista - che provoca un postback e l'ODS raccoglie in qualche modo la sua SelectMethod originale. Le SelectParameters che vengono assegnati allo stesso tempo nel code-behind bastone però.

Mi sembra che l'ObjectDataSource dovrebbe essere ricordando il SelectMethod nel ViewState, dovrebbe no?

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

Quando eseguo quel pulsante scatto, la griglia visualizza come previsto. Quando clicco su una delle intestazioni di colonna per il GridView e rompere nel caricamento della pagina per ispezionare la SelectMethod, che è tornata a quella dichiarata nella marcatura.

Qualche suggerimento su cosa il mio problema potrebbe essere qui?

È stato utile?

Soluzione 2

ho finito per lavorare attorno al problema da solo utilizzando una proprietà pagina per tenere il SelectMethod, e quindi il ripristino su ogni postback ...

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

Ancora non è sicuro perché questo prop SelectMethod non si attacca su un postback in Nuke. Sono sicuro che questo ha funzionato bene per me in progetti ASP.NET dritti in passato ...

Altri suggerimenti

Sto cercando di indovinare che hai fatto in modo che non si sta reimpostando .SelectMethod quando la pagina viene ricaricata?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top