Cute Girly Geek Ответов: 1

Скрыть кнопку в gridview на основе значения другого элемента управления внутри GV (VB.NET)


Привет,
Я пытаюсь скрыть кнопку внутри gvResults (gridview) на основе значения другого элемента управления внутри gridview.

оба поля шаблон.

Protected Sub gvResults_RowDataBound(sender As Object, e As GridViewRowEventArgs)
        If e.Row.RowType = DataControlRowType.DataRow Then

            Dim SPass As String = TryCast(e.Row.FindControl("lblSharePass"), Label).Text
            Dim ShareButton As Button = TryCast(e.Row.FindControl("btnShare"), Button)

            If Not String.IsNullOrEmpty(SPass) Then
                ShareButton.Visible = False
            Else
                ShareButton.Visible = True
            End If
        End If

    End Sub


lblSharePass привязан к столбцу в базе данных
<asp:Label ID="lblSharePass" runat="server" Text='<%#Bind("SharePass") %>'></asp:Label>


Я, кажется, не могу сделать это правильно. btnShare не должен быть виден, если lblSharePass содержит значение.. Однако я попытался указать значение типа SPass = "1234", и оно работает..

Может кто-нибудь, пожалуйста, помочь.

Что я уже пробовал:

я пробовал isnothing,"", vbnullstring, но ни один из них не работает. Я также создал ту же Сабу в RowCreated, но с неудачными результатами.

1 Ответов

Рейтинг:
10

Richard Deeming

Вы можете связать Visible свойство в разметке, без использования RowDataBound событие:

<asp:Button ID="btnShare" runat="server" 

    Visible='<%# String.IsNullOrWhiteSpace(Eval("SharePass", "{0}")) %>'

    ...

/>

(С помощью IsNullOrWhiteSpace будет обрабатывать случаи,когда значение представляет собой строку, содержащую только пробелы. Это будет выглядеть пустым в HTML, но не пройдет IsNullOrEmpty, и не будет равно пустой строке.)


Cute Girly Geek

Спасибо, Р. Д., Это сработало.... фу!!! Еще раз спасибо! :*