Показывать верхний / нижний колонтитул, когда Gridview пуста VB.net

Я понимаю, что для этого есть решение, но я изо всех сил пытаюсь правильно преобразовать его в VB :(

Мне удалось получить каскадный набор раскрывающихся списков с данными, основанными на результатах друг друга, что мне очень понравилось.

Однако из-за обратной публикации сетка исчезнет, ​​пока не будет выбрано второе значение, и будет выглядеть ужасно.

Есть ли какой-либо способ в VB, чтобы заголовок оставался на месте, если в представлении сетки нет данных?

Спасибо заранее.


person David Adlington    schedule 02.06.2009    source источник


Ответы (3)


Да, есть способ, который можно сделать вручную, вот код, который делает все это на C # Пример, просто используйте converter, и он предоставит вам его в VB

или следуйте этим примерам SO GridView - Показать заголовки в пустом источнике данных.

person TStamper    schedule 02.06.2009

У вас есть 2 способа сделать это:

1-By имитировать поля ввода внутри

<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 имеет некоторые проблемы.

person Emad Mokhtar    schedule 07.05.2012

Существует более простой и понятный способ разметки (поэтому не имеет значения, используете ли вы VB или C #): просто установите для GridView person Zeek2    schedule 17.12.2019