Frage

Ich habe eine ASPX-Webanwendung, in der 1 ASPX-Seite und 1 Webbenutzersteuerelement vorhanden sind.Ich habe 4 Instanzen des Benutzersteuerelements auf der ASPX-Seite hinzugefügt.Im Benutzersteuerelement gibt es eine Schaltfläche zum Entfernen, mit der das Steuerelement von der ASPX-Seite entfernt werden kann.Wenn ich auf die Schaltfläche „Entfernen“ des Benutzersteuerelements klicke, wie kann ich dann herausfinden, dass auf der ASPX-Seite auf die Schaltfläche „Entfernen“ des Benutzersteuerelements geklickt wird?Bitte teilen Sie mir die Lösung mit ...

Dank im Voraus :)

War es hilfreich?

Lösung

Wenn Sie versuchen, diese Client-Seite zu tun, können Sie auf die solche ID verweisen:

var removeButtonId = "<%=removeButton.ClientID %>";

Wenn Sie ein Klickereignis verkabelt haben, können Sie es von der erhalten sender Parameter wie SO:

void removeButton_Click(object sender, EventArgs e)
{
    Button removeButton = sender as Button;
    string id = removeButton.ID;
}

Andere Tipps

Ich würde der Benutzersteuerung ein Ereignis hinzufügen und dieses Ereignis im Code dahinter erfassen. Hier ist ein Beispiel:

Standard.aspx Webform:

Registrieren Sie die Benutzersteuerung:

<%@ Register TagPrefix="so" TagName="UserControl" Src="~/WebUserControl.ascx" %>

4 Fälle der obigen Kontrolle. Beachten Sie, dass wir das unten definierte Onrimoving -Ereignis bearbeiten:

    <so:UserControl ID="UserControl1" runat="server" Title="Control 1" OnRemoving="UserControl1_Removing" />
    <so:UserControl ID="UserControl2" runat="server" Title="Control 2" OnRemoving="UserControl2_Removing" />
    <so:UserControl ID="UserControl3" runat="server" Title="Control 3" OnRemoving="UserControl3_Removing" />
    <so:UserControl ID="UserControl4" runat="server" Title="Control 4" OnRemoving="UserControl4_Removing" />

Default.aspx Code dahinter:

In dem Code dahinter übernahm ich die einzelnen Ereignisse der Steuerung:

protected void UserControl1_Removing(object sender, EventArgs e)
{
    WebUserControl ctrl = (WebUserControl)sender;
    ctrl.Visible = false;
}
protected void UserControl2_Removing(object sender, EventArgs e)
{
    WebUserControl ctrl = (WebUserControl)sender;
    ctrl.Visible = false;
}
protected void UserControl3_Removing(object sender, EventArgs e)
{
    WebUserControl ctrl = (WebUserControl)sender;
    ctrl.Visible = false;
}
protected void UserControl4_Removing(object sender, EventArgs e)
{
    WebUserControl ctrl = (WebUserControl)sender;
    ctrl.Visible = false;
}

Benutzersteuerungsform:

Die Web -Benutzerkontrolle enthält eine "Entfernen" -Taste:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="WebUserControl" %>

<fieldset>
  <legend><%=Title %></legend>
  <asp:Button ID="Button_Remove" runat="server" Text="Remove" OnClick="Button_Remove_Click" />
</fieldset>

Benutzerkontrollcode dahinter:

Hier erfahren Sie, wie Sie das Ereignis für die Benutzersteuerung codieren:

public partial class WebUserControl : System.Web.UI.UserControl
{
    // the event delegates may listen for
    public event EventHandler Removing;
    public string Title { get; set; }

    protected void Page_Load(object sender, EventArgs e)
    {
    }

    protected void Button_Remove_Click(object sender, EventArgs e)
    {
        // raise the event for attached delegates
        if (Removing != null)
            Removing(this, EventArgs.Empty);
    }
}

Endergebnis:

Das obige Beispiel erzeugt die folgende Webseite. Wenn eine Schaltfläche entfernen wird, verschwindet diese Steuerung:

Final product

Viel Glück!!

Ein einfacher Weg:Lassen Sie das Benutzersteuerelement ein RemoveClicked-Ereignis implementieren.Wenn dann auf die Schaltfläche „Löschen“ geklickt wird, wird im Schaltflächenklick-Ereignishandler das RemoveClicked-Ereignis ausgelöst.Die Seite kann erkennen, von welchem ​​Benutzersteuerelement die Entfernungsanforderung stammt.Wenn Sie möchten, können Sie die Schaltfläche auch über die Ereignisargumente übergeben.Zu Ihrer Information, die Seite müsste auch für alle vier Benutzersteuerelemente an dieses Ereignis angehängt werden.

Bei diesem Rat wird davon ausgegangen, dass Sie nach einer serverseitigen und nicht nach einer clientseitigen Lösung suchen.

HTH.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top