Ich habe editierbare Rasteransicht, wenn ich auf Bearbeiten in einer beliebigen Zeile sage "x" klicken, öffnet es im Bearbeitungsmodus, aber wenn ich auf eine andere Zeile klicken, sagen "y", "x" sollte Bearbeitung abbrechen Aber in meinem Code nach dem Klicken auf "y" bleiben beide Zeilen im Bearbeitungsmodus.Grid-Ansicht Problem bearbeiten
protected void gvViewAdmins_RowEditing(object sender, GridViewEditEventArgs e)
{
gvViewAdmins.EditIndex = e.NewEditIndex;
Label lblEmailId = gvViewAdmins.Rows[e.NewEditIndex].FindControl("gvlblEmail") as Label;
lblEmailId.Visible = false;
ViewState["currentEmailId"] = lblEmailId.Text;
TextBox textboxEmailId = gvViewAdmins.Rows[e.NewEditIndex].FindControl("gvtbEmailId") as TextBox;
textboxEmailId.Text = ViewState["currentEmailId"].ToString();
textboxEmailId.Visible = true;
Label lblRole = gvViewAdmins.Rows[e.NewEditIndex].FindControl("gvlblRole") as Label;
lblRole.Visible = false;
ViewState["currentRole"] = lblRole.Text;
DropDownList dropdownRoles = gvViewAdmins.Rows[e.NewEditIndex].FindControl("gvddlRoles") as DropDownList;
this.PopulateRole(dropdownRoles);
dropdownRoles.Visible = true;
this.SelectRoleDropDownValue(dropdownRoles);
LinkButton lbtnUpdate = gvViewAdmins.Rows[e.NewEditIndex].FindControl("lbtnUpdate") as LinkButton;
LinkButton lbtnCancel = gvViewAdmins.Rows[e.NewEditIndex].FindControl("lbtnCancel") as LinkButton;
LinkButton lbtnEdit = gvViewAdmins.Rows[e.NewEditIndex].FindControl("lbtnEdit") as LinkButton;
lbtnUpdate.Visible = true;
lbtnCancel.Visible = true;
lbtnEdit.Visible = false;
}
Was ist falsch in meinem Code?
Ok jetzt änderte ich meinen Code wie pro Ihre Probe. Es gibt jedoch eine Dropdown-Liste, die nur im Bearbeitungsmodus angezeigt wird. Wenn ich es in aufbewahre, funktioniert Code für findControl nicht im dahinterliegenden Code. 'DropDownList dropdownRoles = gvViewAdmins.Rows [e.NewEditIndex] .FindControl (" gvddlRoles ") als DropDownList; this.PopulateRole (Dropdown-Zeilen); dropdownRoles.Visible = true; this.SelectRoleDropDownValue (dropdownRoles); 'Hier wird im Debug-Modus ein Nullwert angezeigt. –
user1181942
Ich habe es ... Ich muss Kontrolle in PreRender Event und nicht in Zeile Edititng finden ... Danke für Ihre Hilfe :) – user1181942
Sie können Steuerelement in Zeile datengebundenen Ereignis auch finden, indem Sie prüfen, ob (e.Row.RowIndex == gvViewAdmins.EditIndex) {DropDownList dropdownRoles = gvViewAdmins.Rows [e.NewEditIndex] .FindControl ("gvddlRoles") als DropDownList}, welches die aktuell bindende Zeile prüft, ist die Bearbeitungszeile. Und noch etwas, es gibt keine Notwendigkeit, "dropdownRoles.Visible = true;" zu schreiben. Es wird es trotzdem anzeigen. –