2013-04-25 5 views
11

Ho bisogno di utilizzare controlli utente (ascx) in una pagina, è un correlato di controllo utente post con sede a 2 parametri:inviare i parametri personalizzati per il controllo dell'utente ascx

1. Current post 
2. Relation type 

la pagina deve avere 3 casi diversi di questo controllo, ciascuno con lo stesso parametro Post corrente, ma un tipo di relazione diverso (titolo, autore, genere).

Il primo parametro che posso ottenere tramite url, ma per quanto riguarda il secondo parametro?

Ho cercato su google per un po 'ma non ho ancora trovato una risposta. Come posso passare il secondo parametro in modo che il controllo possa caricare le informazioni in base a questi parametri? preferirei non per creare un controllo per ogni parametro, altrimenti sarebbe meglio costruire alcun controllo utente, ma direttamente in codice :( Grazie

+0

Perché non creare le proprietà (dell'ascx) e assegnarlo semplicemente dalla pagina che lo sta utilizzando? – mshsayem

+0

Intendi '' Come posso leggere tali proprietà dal controllo? –

+0

poiché queste proprietà sono proprietà di controllo (classe), possono sempre leggere/scrivere quelle – mshsayem

risposta

22

Creare proprietà pubbliche dell'utente controllo come:!

public partial class SampleUC : UserControl 
{ 
    public string CurrentPost {get;set;} 
    public string RelationType {get;set;} 

    //... 

    //... 
} 

assegnare tali dalla pagina di utilizzarlo sia dal markup come:

<%@ Register TagPrefix="cc" TagName="SampleUC" Src="SampleUC.ascx" %> 
... 
... 
<cc:SampleUC id="myUC" runat="server" CurrentPost="Sample Post Title" RelationType="Title" /> 

o da code-behind (della pagina usarlo):

protected void Page_Load(object sender, EventArgs e) 
{ 
    //... 

    myUC.CurrentPost = "Sample Post Title"; 
    myUC.RelationType = "Title" ; 

    //... 
} 
+0

Se non è dolorosamente chiaro a nessun altro, assicurati di mettere l'impostazione delle proprietà al di fuori del blocco '! IsPostBack' nel code-behind della pagina su cui si sta utilizzando il controllo. Finiscono in bianco su postback altrimenti. – Kristopher