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:

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]
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;
}
}
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();
});
Full version