Mam Gridview asp.net.
Pobierz indeks wiersza na temat zdarzenia Asp.net Rowcommand
W jaki sposób można uzyskać zdarzenia wiersza w wierszu polecenia?
Chcę podświetlić (wybrać) docelowy wiersz po uruchomieniu Rowcommand.
Mam Gridview asp.net.
Pobierz indeks wiersza na temat zdarzenia Asp.net Rowcommand
W jaki sposób można uzyskać zdarzenia wiersza w wierszu polecenia?
Chcę podświetlić (wybrać) docelowy wiersz po uruchomieniu Rowcommand.
to jest odpowiedź na twoje pytanie.
GridViewRow gvr = (GridViewRow)(((ImageButton)e.CommandSource).NamingContainer);
int RowIndex = gvr.RowIndex;
jeśli mają wbudowane dowództwem GridView jak INSERT, UPDATE usuwać na komendę wiersza można następujący kod linii, aby uzyskać indeks.
int index = Convert.ToInt32(e.CommandArgument);
protected void gvProductsList_RowCommand(object sender, GridViewCommandEventArgs e)
{
try
{
if (e.CommandName == "Delete")
{
GridViewRow gvr = (GridViewRow)(((ImageButton)e.CommandSource).NamingContainer);
int RemoveAt = gvr.RowIndex;
DataTable dt = new DataTable();
dt = (DataTable)ViewState["Products"];
dt.Rows.RemoveAt(RemoveAt);
dt.AcceptChanges();
ViewState["Products"] = dt;
}
}
catch (Exception ex)
{
throw;
}
}
protected void gvProductsList_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
try
{
gvProductsList.DataSource = ViewState["Products"];
gvProductsList.DataBind();
}
catch (Exception ex)
{
}
}
ImageButton \ Przycisk itp
CommandArgument='<%# Container.DataItemIndex%>'
kodu za
protected void gvProductsList_RowCommand(object sender, GridViewCommandEventArgs e)
{
int index = e.CommandArgument;
}
byłem w stanie wykorzystać odpowiedź rahularyansharma jest wyżej w moim projekcie, z jedną niewielką modyfikacją. Potrzebowałem uzyskać wartość poszczególnych komórek w wierszu, w którym użytkownik kliknie przycisk LinkButton. Drugi wiersz można zmodyfikować, aby uzyskać wartość tylu komórek, ile chcesz. Oto moje rozwiązanie:
GridViewRow gvr = (GridViewRow)(((LinkButton)e.CommandSource).NamingContainer);
string typecore = gvr.Cells[3].Text.ToString().Trim();
Lub można użyć klasy control
zamiast ich rodzaje:
GridViewRow row = (GridViewRow)(((Control)e.CommandSource).NamingContainer);
int RowIndex = row.RowIndex;
Podoba mi się to. Bardziej ogólna i prosta alternatywa, gdy e.CommandArgument jest w użyciu. – clamchoda
Zdecydowanie najprostsze rozwiązanie, zwłaszcza jako odlew VB nie jest tak proste jak w przykładzie C# w druga odpowiedź. – Brent
To nie zadziała, gdy masz wiele stron w widoku siatki. – MyCSharpCorner