【问题标题】:How to display record in gridview using pageload event in vb.net?如何在 vb.net 中使用 pageload 事件在 gridview 中显示记录?
【发布时间】:2011-01-23 10:09:42
【问题描述】:
如何在 vb.net 中使用 pageload 事件在 gridview 中显示记录?
我想使用两个 SqlDatasource1 和 sqldatasource 2 在单个 gridview1 中显示记录
SqlDatasource1 将显示表中的所有记录,其中 SqlDatasource 将用于显示表 1 中的特定记录搜索,但如何做到这一点?
【问题讨论】:
标签:
asp.net
vb.net
visual-studio-2008
gridview
【解决方案1】:
我不确定您为什么要显示该表中除了属于该表的特定过滤器的记录之外的所有记录。您想如何明确过滤后的部分和未过滤的部分?
您可以使用UNION ALL 将两个结果集组合在一起。如果它属于过滤集,您还可以添加一个包含布尔值的列。通过这种方式,您将能够根据 Codebehind 中 RowDataBound 中的此列值将不同的 CssClasses 添加到行中。
例如:
SELECT Foo.*,0 AS IsFiltered FROM Foo
UNION ALL
SELECT Foo.*,1 AS IsFiltered FROM Foo
where Name like 's%
这种方式只需要一个 SQL-Datasource。
为过滤后的记录设置不同的CssClass:
Private Sub GridRowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
Dim row As DataRowView = DirectCast(e.Row.DataItem, DataRowView)
Dim isFiltered As Boolean = CType(row("IsFiltered"), Boolean)
If isFiltered Then e.Row.CssClass = "FilteredRecords"
End If
End Sub
'