【问题标题】:Show Header/Footer when Gridview is Blank VB.net当 Gridview 为空白 VB.net 时显示页眉/页脚
【发布时间】:2010-10-30 17:26:41
【问题描述】:

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

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

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

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

非常感谢。

【问题讨论】:

    标签: asp.net vb.net gridview postback


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      你有两种方法可以做到:

      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有一些问题。

      【讨论】:

        【解决方案3】:

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

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

        然而,这并没有显示页脚,微软以其无限的智慧,不知何故认为不适合添加明显的等效 ShowFooterWhenEmpty 属性:(所以,我仍在研究这个。

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

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

        【讨论】: