Как найти повторяющиеся строки в табличном представлении
у меня есть gridview ,в нем есть несколько строк с одним и тем же идентификатором ,я хочу найти те же идентификаторы и скрыть один из них
помогите мне плз
Function findIDInGrid(ByVal array As ArrayList, ByVal s As String) As Integer Dim digit As Integer = -1 For Each obj As Object In array If obj.ToString() = s Then digit = array.IndexOf(obj) Exit For End If Next Return digit End Function Protected Sub grdGoods_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles grdGoods.PreRender Try Dim array As New ArrayList For Each row As GridViewRow In grdGoods.Rows Dim rug_Id As Label = CType(row.FindControl("rug_Id"), Label) If findIDInGrid(array, rug_Id.Text) <> -1 Then grdGoods.Rows(findIDInGrid(array, rug_Id.Text)).Visible = False End If array.Add(rug_Id.Text) End If Next end sub
А как насчет того, чтобы никогда не добавлять дубликат в gridview в первую очередь ?
сначала я привязываю его к базе данных
затем я объединяю datatable с ним из другого места
теперь я хочу показать не дублирующуюся строку
Если вы используете .NET 3 и выше. Вы можете использовать Linq для создания отличия по значению?
Хороший подход. 5.
Спасибо.
Попробуйте отфильтровать этот дубликат идентификатора / строки в самом запросе.
Это был бы самый оптимальный способ избавиться от дубликатов.
И тебе того же. Мой 5.
Спасибо.
Это не очень хорошая идея. Лучше справляться с этими вещами в источнике данных. Отфильтруйте данные в DataSource(DataTable или что-то еще) и затем привяжите их к GridView.
К вашему сведению
DataView.Свойство RowFilter[^]
Мои 5 за то .RowFilter.