Domanda

questo è il mio scenario:
Ho una pagina con un segnaposto. Nella pagina aggiunge dynimcally diversi tipi di controlli (si wan't per visualizzare alcuni dati - ottenere l'id tramite querystring o postback, come abbiamo anche un albero) a questo segnaposto
. i controlli aggiunti tutti, più o meno, contengono una casella di testo (nome dell'elemento visualizzazione), casella di controllo (attivo-stato dell'elemento visualizzazione) e un pulsante save-che spara un metodo all'interno di questo webcontrol.

ora il mio problema è davvero evidente: come sto aggiungendo il controllo in modo dinamico (! e per ogni condizione: postback e postback), il salvataggio metodo all'interno il controllo in modo aggiunto, non si attiva - indipendentemente da quello che faccio ...

io sono semplicemente stupido per ottenere il trucco:)

alcune informazioni dietro le quinte-(workflow):

protected void Page_Load(object sender, EventArgs e)
{
    if (!this.Page.IsPostBack)
    {
        this.SelectedElement = SomeMagicMethod();
    }
}

protected void NodeSelected(object sender, TreeViewNodeEventArgs e)
{
    this.SelectedElement = SomeOtherMagicMethod();
}

protected override void OnLoadComplete(EventArgs e)
{
    // we have to take this life-cycle!
    if (this.SelectedElement!= null)
    {
        this.DisplayElement();
    }
}

private void DisplayElement()
{
    var UC = this.LoadControl(UCPath) as DataTypeUC;
    if (UC == null)
    {
        return;
    }

    UC.ID = EditCampaignFolderUCID;
    UC.SetData(this.SelectedElement);
    UC.DataBind();
    this.phContent.Controls.Add(UC);
}
È stato utile?

Soluzione 2

il trucco è: reinstatiate tutto in OnInit, e nell'ordine come il ViewState è stato salvato l'ultima richiesta ... ingannevole ingannevole

Altri suggerimenti

Mentre l'aggiunta di controlli in modo dinamico, avrete anche per cablare il caso di ogni pulsante Salva (cioè, se il pulsante di salvataggio viene generato dinamicamente).

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