Вопрос

Есть ли способ получить доступ к элементам, находящимся в другой строке, пока вы находитесь в событии RowDataBound?

public void gridview1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    // how to compare e.Row with row above or row below?
}
Это было полезно?

Решение

Одна вещь, я думаю, ты можешь сделать, это...

foreach (GridViewRow gvrow in GridView1)
{
    //loop through gridview's rows and find the row you're looking for
}

Я считаю, что RowDataBound добавляет строки в том же порядке, в котором они находятся в источнике данных, поэтому, если в вашем DataTable есть 100 записей и вы привязываете этот DataTable к GridView, RowDataBound вызывается 100 раз для каждой строки в порядке они существуют в DataTable.Таким образом, вы упомянули об использовании RowDataBound для сравнения e.Row со строкой выше ИЛИ строкой ниже... но если они поступают последовательно, строки ниже не будет.Это то, о чем я раньше не задумывался, но при тестировании с точками останова я вспоминаю, что RowDataBound работает таким образом.

Если вы не можете заставить что-то подобное работать, и вам нужно, чтобы это произошло, даже если это некрасиво и вы не получаете лучших ответов, вы можете сохранить копию своего DataTable с привязкой к данным или любого другого источника данных, в котором находится ваш источник данных. переменная ViewState или Session, например ViewState["myDataTable"].Затем вы можете получить DataTable в событии RowDataBound и просмотреть строки выше и ниже строки, представленной e.Row (при условии, что у вас есть какой-то курсор, например идентификатор, для идентификации строк).Сделав это, вы МОЖЕТЕ просмотреть следующую строку, которая будет добавлена ​​в GridView с помощью RowDataBound, поскольку это будет следующая строка в DataTable (которая уже существует и ее можно просмотреть).

Однако если вы делаете что-то в больших масштабах, я думаю, что весь этот цикл может стать обременительным.

Другие советы

Из туманной памяти вы можете ссылаться GridViewряд RowS оттуда и перечитывает их. Вы должны быть в состоянии получить позицию E и доступ в любом случае в любом случае строки, не уверенные в рядах ниже, так как к тому времени они не являются базами базы, но, если только это не один кадр.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top