#c# #asp.net #gridview #nested
#c# #asp.net #gridview #вложенный
Вопрос:
Есть ли альтернатива переопределению метода рендеринга страницы, чтобы сделать мои строки в gridview интерактивными. Это отлично работает в режиме просмотра с одной сеткой, но при вложении, хотя код выполняется поэтапно и кажется нормальным, я не запускаю выбранный индекс во вложенном представлении сетки.
Редактировать: я попробовал следующую строку в RowDataBound, но не знаю, почему я не запускаю выбранный индекс
e.Row.Attributes["onclick"] = ClientScript.GetPostBackClientHyperlink(e.Row.Parent.Parent, "Select$" e.Row.RowIndex);
protected override void Render(HtmlTextWriter writer)
{
if (gdvServiceSchedule.Rows.Count > 0)
{
foreach (GridViewRow row in gdvServiceSchedule.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
row.Attributes.Add("onclick", Page.ClientScript.GetPostBackEventReference(this.gdvServiceSchedule, "Select$" row.DataItemIndex, true));
}
if (row.RowState == DataControlRowState.Edit || row.RowState == (DataControlRowState.Edit | DataControlRowState.Alternate))
{
GridView gv = (GridView)row.FindControl("gdvServiceScheduleVariants");
if(gv.Rows.Count > 0)
{
foreach(GridViewRow row2 in gv.Rows)
{
if(row2.RowType ==DataControlRowType.DataRow)
{
row2.Attributes.Add("onclick", Page.ClientScript.GetPostBackEventReference(row.FindControl("gdvServiceScheduleVariants"), "Select$" row2.DataItemIndex, true));
}
}
}
}
}
}
base.Render(writer);
}
Ответ №1:
используйте MVC framework … но серьезно, можете ли вы просто создать другой свой пользовательский элемент управления внутри строки вместо GridView?
Комментарии:
1. Есть несколько способов обойти проблему, которые я вижу, одним из них может быть пользовательский элемент управления, я просто хочу знать решение проблемы. 🙂