L'esempio che ho fatto è questo:
Pagina ASPX con i due UC: (ho usato una label sulla pagina principale per simulare il DB)
Usercontrol UNO (Listview che incrementa i prodotti in tabella):codice:<form id="form1" runat="server"> <div> <asp:PlaceHolder ID="ph1" runat="server"></asp:PlaceHolder> </p> <asp:PlaceHolder ID="ph2" runat="server"></asp:PlaceHolder> </div> (Prodotti nella tabella carrello: <asp:Label ID="lbContaHidden" runat="server" Text="0" ForeColor="#cccccc"></asp:Label>) </form> Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender Dim Novita As UserControl = LoadControl("due.ascx") ph2.Controls.Add(Novita) End Sub Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim Shopping As UserControl = LoadControl("uno.ascx") ph1.Controls.Add(Shopping) End Sub
Usercontrol DUE (Riepilogo del carrello):codice:<%@ Control Language="VB" AutoEventWireup="false" CodeFile="uno.ascx.vb" Inherits="usercontrols_uno" %> <asp:Button ID="btnAdd" runat="server" Text="Incrementa" /> Partial Class usercontrols_uno Inherits System.Web.UI.UserControl Public n As Integer Protected Sub btnAdd_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAdd.Click n = CInt(CType(Me.Page.FindControl("lbContaHidden"), Label).Text) CType(Me.Page.FindControl("lbContaHidden"), Label).Text = CStr(n + 1) End Sub End Class
E le due labels sono perfettamente sincronizzate.codice:<%@ Control Language="VB" AutoEventWireup="false" CodeFile="due.ascx.vb" Inherits="usercontrols_due" %> IN CARRELLO:<asp:Label ID="lbConta" runat="server"></asp:Label> Partial Class usercontrols_due Inherits System.Web.UI.UserControl Public prodotti As Integer Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load prodotti = CInt(CType(Me.Page.FindControl("lbContaHidden"), Label).Text) lbConta.Text = CStr(prodotti) End Sub End Class

Rispondi quotando