2013-04-25 10 views
11

muszę używać formantów użytkownika (.ascx) na stronie, jest to związane kontrola użytkownika Post oparty na 2 parametry:wysłać niestandardowe parametry do sterowania użytkownik ASCX

1. Current post 
2. Relation type 

strona musi mieć 3 różne instancje tej kontroli, z których każda ma ten sam parametr Bieżący post, ale inny typ relacji (tytuł, autor, gatunek).

Pierwszy parametr mogę uzyskać za pośrednictwem adresu URL, ale co z drugim parametrem?

Przez jakiś czas googlowałem, ale jeszcze nie znalazłem odpowiedzi. Jak mogę przekazać drugi parametr, aby kontrolka mogła załadować informacje na podstawie tych parametrów? bym nie raczej utworzyć formant dla każdego parametru, jeszcze lepiej byłoby zbudować żadnej kontroli użytkownika, ale kieruje do kodu :( Dzięki

+0

Dlaczego po prostu nie tworzysz właściwości (ascx) i po prostu przypisujesz to ze strony, która z niego korzysta? – mshsayem

+0

Masz na myśli '' Jak mogę odczytać te właściwości ze sterowania? –

+0

ponieważ te właściwości są właściwościami kontrolnymi (klasa), zawsze można je odczytać/zapisać – mshsayem

Odpowiedz

22

Tworzenie właściwości publiczne na łatwość sterowania, takie jak:

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

    //... 

    //... 
} 

przydzielać od strony albo z użyciem znaczników, takich jak:

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

lub kodu źródłowego (strony użyciem)

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

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

    //... 
} 
+0

Jeśli nie jest to boleśnie jasne dla nikogo innego, upewnij się, że ustawiłeś właściwości poza blokiem '! IsPostBack' w kodzie źródłowym strony, na której używasz formantu. W przeciwnym wypadku kończą się pustym hasłem. – Kristopher

Powiązane problemy