当Gridview为空白VB.net时显示页眉/页脚

时间:2009-06-02 15:30:43

标签: asp.net vb.net gridview postback

我意识到有一个解决方案,但我正在努力让它正确转换为VB:(

我已经设法获得了一组级联的下拉列表,其中的数据基于彼此的结果,我非常满意。

然而,由于回发后网格将消失,直到选择第二个值并且看起来很糟糕

如果网格视图中没有数据,VB中是否还有允许标题留下来?

非常感谢提前。

3 个答案:

答案 0 :(得分:3)

是的,有一种方法可以手动完成,这是在C#Example中完成所有操作的代码,只需使用converter,它就会在VB中提供给你

或遵循这些示例SO GridView - Show headers on empty data source.

答案 1 :(得分:2)

你有2种方法可以做到:

1 - 通过模拟

中的输入字段
<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 - 创建空数据集并将其绑定到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有一些问题。

答案 2 :(得分:0)

有一种更简单,更干净的标记方式(因此,无论您使用的是VB还是C#,都没有关系):只需将GridView的 ShowHeaderWhenEmpty 属性设置为true。 :)

参考在此处查看最佳答案:GridView - Show headers on empty data source

但是,这并没有显示页脚,Microsoft以其无限的智慧,不知如何添加明显的等效 ShowFooterWhenEmpty 属性:(因此,我仍在研究这一点。

注意:以下现有GridView属性不足以不足以容纳空数据集:将 ShowFooter 属性设置为true 。*

要显示页脚,我们有一个sproc(存储过程),当相关的SQL SELECT未找到匹配项时,它会填充我们的网格,返回一行null,或者主要是null。效果很好。 ;)