Invocare il PostBack di un controllo ASP.NET da Silverlight

di Daniele Bochicchio, in Silverlight 1.0, ASP.NET,

Quando si usa Silverlight 1.0 in una pagina ASP.NET è spesso necessario poter invocare il PostBack di un controllo al seguito di un'azione all'interno del Canvas, per poter mischiare parte della logica con quella server side.

In questo scenario, la soluzione più pratica è quella di invocare il metodo __doPostBack, generato automaticamente dalla WebForm ASP.NET, passando come primo parametro l'ID (lato client) del controllo di cui si vuole scatenare il PostBack e come secondo parametro un valore nullo (a meno che non sia necessario passare un'informazione aggiuntiva, cosa necessaria per alcuni controlli più complessi):

__doPostBack('Submit', '');

Qualora si faccia uso di ASP.NET AJAX e si voglia richiamare l'aggiornamento dell'UpdatePanel da Silverlight, è sufficiente inserire all'interno del controllo un semplice campo hidden, facendo attenzione che la proprietà ChildrenAsTrigger sia impostata su True o lo stesso controllo sia elencato tra i trigger dell'UpdatePanel.

<asp:UpdatePanel runat="server">
<ContentTemplate>
  <asp:HiddenField id="FakeButton" runat="server" />
  ...
</ContentTemplate>
</asp:UpdatePanel>

In questo caso è dunque sufficiente richiamare questo codice:

__doPostBack('<%=FakeButton.ClientID%>', '');

In questo modo l'UpdatePanel sarà aggiornato direttamente da Silverlight: comodo in tutti quegli scenari in cui si ha un contenuto misto nella pagina.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi