Sonntag, Dezember 15, 2019

Das GridView – ‚GridView1‘ ausgelösten Ereignis RowDeleting die nicht behandelt , aber es ist ein Ereignis

ı wurden traying, um dynamische control-panel mit webusercontrol , delegieren,und ADO.
Auch ı schreiben der Delegaten für das löschen und Bearbeiten ı konfrontiert mit „Die GridView ‚GridView1‘ ausgelösten Ereignis RowDeleting, die nicht behandelt werden.“ – problem . Kann jemand mir helfen pls
hier meine codes

    protected void Page_Load(object sender, EventArgs e)
    {
        GridView1.DataSource = this.DataSource;
        GridView1.DataBind();
        GridView1.DataKeyNames = new string[] { this.DataKeyNames };

    }

    public object DataSource { get; set; }
    public string DataKeyNames { get; set; }

    public event GridHander RowDeleting;
    public event GridHander RowSawing;


    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        GridViewRow gvr = ((LinkButton)e.CommandSource).Parent.Parent as GridViewRow;
        int rowIndex = gvr.RowIndex;
        object id = GridView1.DataKeys[rowIndex].Value;

        switch (e.CommandName)
        {
            case "Edit":
                GridView1.EditIndex = rowIndex;
                break;

            case "Delete":
                if (RowDeleting != null)
                {
                    GridEventArgs args = new GridEventArgs() 
                    {
                         row=gvr,
                         id=id,
                         rowIndex=rowIndex
                    };
                    RowDeleting.Invoke(e.CommandSource, args);
                }
                break;

            case"Save":
                if (RowSawing != null)
                {
                    GridEventArgs args = new GridEventArgs() 
                    {
                        row = gvr,
                        id = id,
                        rowIndex = rowIndex
                    };
                    RowSawing.Invoke(e.CommandSource, args);

                }
                GridView1.EditIndex = -1;
                break;

            case "Cancel":
                GridView1.EditIndex = -1;
                break;

            default:
                break;
        }
    }
}

//Mein webform

ublic partial class CategoryControlPanel : System.Web.UI.Page
{
    CategoryResposite _categoryResposite=new CategoryResposite();

    protected void Page_Load(object sender, EventArgs e)
    { 
        ControlPanel.DataSource = _categoryResposite.ListCategories();
        ControlPanel.RowDeleting += ControlPanel_RowDeleting;
        ControlPanel.RowSawing += ControlPanel_RowSawing;
    }

    void ControlPanel_RowSawing(object sender, GridEventArgs e)
    {
        throw new NotImplementedException();
    }

    void ControlPanel_RowDeleting(object sender, GridEventArgs e)
    {
        _categoryResposite.DeleteCategories(Convert.ToInt32(e.id));   
    }
  • Wo in deinem code gibst du die event-handler für GridView1.RowDeleting? Ich sehe es nicht. Ich sehe, Sie der Einstellung einen handler für ControlPanel.RowDeleting, ist das ControlPanel einen Verweis auf GridView1? Wenn ja, sind Sie sicher, dass der Verweis korrekt ist?
InformationsquelleAutor Burak Can | 2013-04-06

4 Kommentare

  1. 1

    Den code, den du gepostet hast, ist unvollständig (es fehlen die aspx-Datei-code), aus deine Beschreibung des Problems klingt es so, als wenn Sie nicht bewertet haben die RowDeleting-Ereignis GridView1.

    Inneren der öffnung gridview-Tags in der aspx-Datei fügen Sie die Zuordnung wie folgt:

    <asp:gridview ID="..." runat="server" ... OnRowDeleting="<name of event handler>" ...>

    Ob der event-handler ControlPanel_RowDeleting ist entworfen, um ein löschen im gridview-Aktion, dann fügen Sie diese Ereignis-handler-name. Sicherzustellen, dass Sie re-binden Sie das gridview-Steuerelement nach dem löschen, damit die änderungen angezeigt werden postback.

    protected void ControlPanel_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        //cancel the automatic delete action
        e.Cancel = true;
    
        //do the delete
        _categoryResposite.DeleteCategories(Convert.ToInt32(e.id));
    
        //complete delete action
        GridView1.DataBind();
    }
  2. 1

    Sie versuchen, mit einem Befehl, den Namen des Löschen für Ihre Schaltfläche „löschen“. Also das gridview erstellt eine Zeile löschen-Ereignis automatisch auf….

    Müssen Sie ändern Sie den Befehl argument von Löschen, um etwas anderes wie Delete_Product oder was auch immer Sie wollen…

  3. 0

    Eines der guten Dinge über das GridView-Steuerelement ist, dass es bietet eine built-in-CommandField-Tasten, die es uns ermöglicht, bestimmte Aktionen wie das Bearbeiten, aktualisieren,löschen und auswählen von GridView-Daten.

    Zusätzlichen Befehl genannten Felder in der GridView-können Sie Folgen Sie diesen wenigen Schritten:
    1. Wechseln Sie zur Entwurfsansicht
    2. Der rechten Maustaste auf das GridView-Steuerelement, und Wählen Sie –> Smarttag Anzeigen –> Hinzufügen von Neuen Spalten
    3. Auf der Liste CommandField
    4. Prüfen, Löschen und Bearbeiten/Aktualisieren der Optionen und dann OK

    Wie Sie sehen können, Bearbeiten und Löschen CommandField werden automatisch Hinzugefügt, in der letzten Spalte der GridView. Jetzt können wir anfangen zu schreiben, unsere codes für die Bearbeitung und Aktualisierung der Daten in der GridView.

    In-Ordnung durchzuführen, zu Bearbeiten und zu Aktualisieren in GridView müssen wir mit drei Veranstaltungen ( GridView_RowEditing, GridView_RowCancelingEdit , GridView_RowUpdating). Für diejenigen, die nicht wissen, wie zu generieren Ereignisse, die im GridView-Steuerelement können Sie die folgenden Schritte Folgen:

    1. Wechseln Sie zur Entwurfsansicht in Visual Studio-Designer
    2. Klicken Sie auf das GridView –
    3. Navigieren Sie zu der Eigenschaft GridView-Bereich, und WECHSELN Sie dann auf Event-Eigenschaften
    4. Von dort aus würden Sie in der Lage sein, um die Liste von Veranstaltungen, darunter die drei oben genannten Ereignisse
    5. Doppelklicken Sie auf, um den Ereignishandler zu erzeugen, die für Sie

Kostenlose Online-Tests

Ihre Entwicklerrolle