Verwenden von GridView in UpdatePanel

Verwenden von GridView in UpdatePanel

Sie müssen OnCommand hinzufügen -Ereignis von GridView und behandeln Sie es dann innerhalb dieses Ereignisses wie folgt:

OnRowCommand="gvPrList_OnRowCommand" 

oder fügen Sie alternativ ein Klickereignis für die einzelne Schaltfläche hinzu und behandeln Sie dann die Code-Behind-Datei:

<asp:Button ID="btnEdit" runat="server" OnClick="btnEdit_Click" Text="Edit" CssClass="button save"
                   OnCommand="onPrItemCmd" CommandName="editRow" CommandArgument='<%#Bind("ID") %>' Style="width: 80px" />

Ich habe Folgendes getan und es funktioniert

Ich ersetze die Asp-Schaltfläche durch die HTML-Schaltfläche und rufe die Javascript-Methode auf, um das Update Panal Load-Ereignis auszulösen.

<input id="btnDelete1" type="button" onclick="javascript:DeletePrItem('<%# Eval("ID") %>');" value="Delete" class="button save" style="width: 80px" />

Meine Js:

    function DeletePrItem(_Id) {
        __doPostBack('<%= uplPanel.ClientID %>', _Id);
    }

Mein Code dahinter:

    protected void uplPanel_Load(object sender, EventArgs e)
    {
        var arg = Request.Params.Get("__EVENTARGUMENT");

        if (arg != null)
        {
            if (arg != "")
            {
                string recordId = arg.ToString();
                //Do deletetion and rebind data grid

    }
     }
}

Ich hatte das gleiche Problem, bei dem Spaltenschaltflächen mit einem OnClick ein Postback verursachten, aber die OnClick-Methode nicht getroffen wurde. Als ich das Update-Panel auskommentierte und alles funktionierte.

Ich habe dieses Problem gelöst, indem ich einen Postback-Trigger für das Raster im Update-Panel hinzugefügt habe:

</ContentTemplate>
   <Triggers>
       <asp:PostBackTrigger ControlID="uxWebDataGrid" />
   </Triggers>
</asp:UpdatePanel>

Hoffe, das hilft jemand anderem!