/ / ładowanie listy rozwijanej w jednym kontrolce użytkownika z innej kontrolki użytkownika na tej samej stronie - asp.net

ładowanie rozwijanej kontrolki jednego użytkownika z innej kontrolki użytkownika na tej samej stronie - asp.net

Jestem nowy w kontroli użytkowników, Mam sytuację, której nie jestem w stanie rozwiązać, jak poniżej

Po kliknięciu przycisku w kontrolce użytkownika 1 powiąż rozwijaną kontrolkę użytkownika na tej samej stronie. a elementy sterujące użytkownika znajdują się we własnych panelach aktualizacji.

UserControl1 ascx:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl1.ascx.cs" Inherits="SampleWebApp.WebUserControl1" %>
<asp:DropDownList ID="DropDownList1" runat="server"></asp:DropDownList>

UserControl2 ascx:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl2.ascx.cs" Inherits="SampleWebApp.WebUserControl2" %>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />

Ponad dwie kontrolki użytkownika znajdują się na stronie aspx, jak poniżej aspx

<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div>
<UC2:UserControl1 ID="UserControl1" runat="server" />
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<div>
<UC2:UserControl2 ID="usercontrol2" runat="server" />
</div>
</ContentTemplate>
</asp:UpdatePanel>

Teraz najważniejsze pytanie kiedy klikam przycisk w kontrolce użytkownika 2, a następnie rozwijana lista w kontrolce użytkownika 1 shud b bound Proszę pomóż

Z góry dziękuję

Odpowiedzi:

0 dla odpowiedzi № 1

Polecam konfigurowanie wydarzeń dla każdego użytkownikakontroluje, do którego subskrybuje stronę hostującą kontrolki użytkownika, a następnie w procedurach obsługi zdarzeń strony istnieje logika, która wie, aby powiedzieć kontrolce użytkownika za pomocą metod / właściwości w kontrolce użytkownika, że ​​należy ją ponownie powiązać, w następujący sposób:

public class UserControlClass1
{
// Define event that will be raised by user control to anyone interested in handling the event
public event UC_Button1ClickEventHandler UC_Button1Click;
public delegate void UC_Button1ClickEventHandler();

public void DoSomething1()
{
// This method can do anything you want the control to do (i.e. rebind, etc.)
}

// Mechanism to allow event to be raised by user control
private void Button1_Click(System.Object sender, System.EventArgs e)
{
if (UC_Button1Click != null)
{
UC_Button1Click();
}
}
}

public class UserControlClass2
{
// Define event that will be raised by user control to anyone interested in handling the event
public event UC_Button2ClickEventHandler UC_Button2Click;
public delegate void UC_Button2ClickEventHandler();

public void DoSomething2()
{
// This method can do anything you want the control to do (i.e. rebind, etc.)
}

// Mechanism to allow event to be raised by user control
private void Button2_Click(System.Object sender, System.EventArgs e)
{
if (UC_Button2Click != null)
{
UC_Button2Click();
}
}
}

Teraz na stronie .aspx, która obsługuje obie kontrolki użytkownika, może subskrybować każde ze zdarzeń kontroli użytkownika, takie jak to:

userControl1.UC_Button1Click += Button1_Click;
userControl2.UC_Button2Click += Button2_Click;

I tutaj, w implementacji modułu obsługi zdarzeń, strona zarządza interakcją między dwoma kontrolkami użytkownika, jak poniżej:

// When the button in user control 1 is clicked, then the DoSomething2 method
// is called in user control 2 (i.e. bind data, etc.)
public void Button1_Click(object sender, EventArgs args)
{
// Call the DoSometing2 method in user control 2
userControl2.DoSomething2();
}

// When the button in user control 2 is clicked, then the DoSomething1 method
// is called in user control 1 (i.e. bind data, etc.)
public void Button2_Click(object sender, EventArgs args)
{
// Call the DoSometing1 method in user control 1
userControl1.DoSomething1();
}

Krótko mówiąc, strona obsługuje odwołania do plikuelementy sterujące użytkownika, więc oba elementy sterujące użytkownika nie znajdują się na stronie lub że oba istnieją. Strona obsługuje także koordynację tego, co dzieje się, gdy zdarzenie jest wywoływane przez kontrolę użytkownika i wywoływanie drugiej kontroli za pomocą metody publicznej.