【发布时间】:2010-10-30 17:26:41
【问题描述】:
我意识到有一个解决方案,但我正在努力让它正确转换为 VB :(
我已经设法获得了一组级联的下拉列表,其中包含基于彼此结果的数据,这让我非常满意。
但是由于回发,网格将消失,直到选择第二个值并且看起来很糟糕
如果网格视图中没有数据,VB中是否有允许标题保留?
非常感谢。
【问题讨论】:
标签: asp.net vb.net gridview postback
我意识到有一个解决方案,但我正在努力让它正确转换为 VB :(
我已经设法获得了一组级联的下拉列表,其中包含基于彼此结果的数据,这让我非常满意。
但是由于回发,网格将消失,直到选择第二个值并且看起来很糟糕
如果网格视图中没有数据,VB中是否有允许标题保留?
非常感谢。
【问题讨论】:
标签: asp.net vb.net gridview postback
你有两种方法可以做到:
1-通过模拟里面的Input Fields
<asp:GridView ID="GridView1" runat="server">
<EmptyDataTemplate>
<tr>
<td>
First Cell
</td>
<td>
Second Cell
</td>
<tb>
Third Cell
</tb>
</tr>
</EmptyDataTemplate>
</asp:GridView>
2-是创建Empty DataSet并将其绑定到GirdView。
If ds.Tables(0).Rows.Count > 0 Then
grd_codes.DataSource = ds
grd_codes.DataMember = ds.Tables(0).TableName
grd_codes.DataBind()
Else
Try
If ds.Tables(0).Rows.Count = 0 Then
ds.Tables(0).Rows.Add(ds.Tables(0).NewRow())
grd_codes.DataSource = ds
grd_codes.DataBind()
Dim columnCount As Integer = grd_codes.Rows(0).Cells.Count
grd_codes.Rows(0).Cells.Clear()
grd_codes.Rows(0).Cells.Add(New TableCell)
grd_codes.Rows(0).Cells(0).ColumnSpan = columnCount
grd_codes.Rows(0).Cells(0).Text = "No Records Found."
End If
我更喜欢第一种方式,因为绑定空DataSet有一些问题。
【讨论】:
有一种更简单、更简洁的标记方式(因此无论您使用的是 VB 还是 C#):只需将 GridView 的 ShowHeaderWhenEmpty 属性设置为 true。 :)
参考。在此处查看最佳答案:GridView - Show headers on empty data source
然而,这并没有显示页脚,微软以其无限的智慧,不知何故认为不适合添加明显的等效 ShowFooterWhenEmpty 属性:(所以,我仍在研究这个。
注意:以下现有 GridView 属性不足以用于空数据集:将 ShowFooter 属性设置为 true。*
为了显示页脚,我们有 sproc(存储过程),当相关的 SQL SELECT 没有找到匹配项时,它会填充我们的网格,返回一行空值,或者主要是空值。效果很好。 ;)
【讨论】: