Gridview Update bearbeiten Löschen, indem Sie in der Zeile auf Asp.net klickenC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Gridview Update bearbeiten Löschen, indem Sie in der Zeile auf Asp.net klicken

Post by Anonymous »

Die Schaltflächen „Aktualisieren“ und „Abbrechen“ funktionieren nicht und diese Schaltflächen befinden sich außerhalb der Rasteransicht.

Szenario:
Das Problem mit dem standardmäßigen asp.net-Gridview-Design besteht darin, dass die GridView-Bearbeitungsspalte immer etwas Platz auf dem Bildschirm einnimmt. Darüber hinaus wird die GridView im Bearbeitungsmodus horizontal erweitert, wodurch das Seitenlayout gestört wird. Deshalb möchte ich eine bearbeitbare GridView rendern, ohne die Standardschaltflächen „Bearbeiten“, „Aktualisieren“ und „Abbrechen“ anzuzeigen

Beispiel:

Image


Was ich bereits getan habe

Wenn Sie die HTML-Quelle von Gridview sehen, finden Sie die folgende Link-Schaltfläche Bearbeiten, Aktualisieren, Abbrechen mit einem Ereignis namens dopostback

z. B.

Code: Select all

[url=javascript:__doPostBack(ctl00$ContentPlaceHolder1$GridView2;Edit${1};)]Edit[/url]
Wenn Sie auf irgendeine Weise dasselbe obige Skript generieren und es für ein clientseitiges Ereignis ausführen (z. B. Klicken auf eine Schaltfläche), können Sie im Wesentlichen dieselben Befehle an das GridView-Steuerelement senden. Der einfachste Weg, dies zu tun, besteht darin, das RowDataBound-Ereignis des GridView-Steuerelements zu verarbeiten. Deshalb habe ich beschlossen, es wie unten gezeigt für das RowDataBound-Ereignis des Gridview-Steuerelements zu verwenden:

Code: Select all

protected void GridView2_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.RowIndex == GridView2.EditIndex)
{
//update or cancel buttons
LinkButton updateBtn = (LinkButton)e.Row.Cells[0].Controls[0];
string updateScript = ClientScript.GetPostBackClientHyperlink(updateBtn, "");
Button1.Attributes["onclick"] = updateScript;

string cancelScript = string.Format("javascript:__doPostBack('ctl00$ContentPlaceHolder1$GridView2','Cancel${1}')",
GridView1.ID, e.Row.RowIndex);
Button2.Attributes["onclick"] = cancelScript;
}
else
{
//edit button
string editScript = string.Format("javascript:__doPostBack('ctl00$ContentPlaceHolder1$GridView2','Edit${1}')",
GridView1.ID, e.Row.RowIndex);
e.Row.Attributes["onclick"] = editScript;
}

}
if (GridView2.EditIndex >= 0)
{
Button1.Enabled = true;
Button2.Enabled = true;
}
else
{
Button1.Enabled = false;
Button2.Enabled = false;
}
}
Wenn ich jetzt auf eine beliebige Zeile der Rasteransicht klicke, wird sie zu einer bearbeitbaren Zeile, die über die Schaltflächen „Abbrechen“ und „Aktualisieren“ abgebrochen und aktualisiert werden sollte, die sich außerhalb der Rasteransicht befinden, aber nicht funktionieren ...

Jede Hilfe oder jeder Vorschlag wäre willkommen.

Hinweis: Sie müssen weiterhin die Schaltfläche „Bearbeiten, Aktualisieren, Abbrechen“ in der Rasteransicht einfügen, die Sie später abrufen können Verstecken Sie sich vor der Rasteransicht, indem Sie ein Skript wie jquery unten verwenden.

z. B.

Code: Select all

$(document).ready(function () {
$("#GridView2 th:first-child").hide();
$("#GridView2 td:first-child").hide();
});

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post