Установка элемента управления в RadGrid на Visible-False

#html #asp.net #vb.net #telerik

#HTML #asp.net #vb.net #telerik

Вопрос:

Мне нужна помощь в получении идентификатора элемента управления в RadGrid, чтобы установить его Visable=False.

Последняя функция фактически создает pic на основе значения, поступающего из базы данных. Как я могу установить гиперссылку рядом с рисунком, который я добавляю к Visible false?

Я думаю, что мне нужно отправить эту функцию, связанную с элементом управления гиперссылкой, но я не знаю как, и я надеюсь, что кто-нибудь сможет показать мне путь.

 <telerik:RadGrid
    ID="rgPhoneBook"
    runat="server"              
    AutoGenerateColumns="False"
    AllowPaging="True"
    AllowSorting="True"
    PageSize="50" 
    CellSpacing="0" GridLines="None" 
    OnItemCommand="rgPhoneBook_ItemCommand"
    OnPageIndexChanged="rgPhoneBook_OnPageIndexChanged"
    OnSortCommand="rgPhoneBook_OnSortCommand"
    OnItemCreated="rgPhoneBook_OnItemCreated"
    EnableHeaderContextFilterMenu="True"
    Width="933px" 
    Height="528px">
    <ClientSettings>
        <Selecting AllowRowSelect="True"></Selecting>
        <Scrolling AllowScroll="true" UseStaticHeaders="True" SaveScrollPosition="true" FrozenColumnsCount="2" />              
    </ClientSettings>  
    <MasterTableView ShowHeadersWhenNoRecords="true" NoMasterRecordsText="No PhoneBook Records to display" Font-Size="11px" GridLines="None" AllowPaging="True" ItemStyle-Height="25px" CommandItemDisplay="Top" AllowAutomaticUpdates="False" TableLayout="Auto" DataKeyNames="LocationID,PersonID" ClientDataKeyNames="LocationID,PersonID">
        <PagerStyle Mode="NumericPages"></PagerStyle>
        <Columns>
            <telerik:GridTemplateColumn HeaderText="Linked"  HeaderStyle-Width="45px" >
                <ItemTemplate>
                    <span id="spanHyperLink" style="visibility:visible" runat="server">
                        <asp:HyperLink ID="Link" runat="server" Text="Link">
                        </asp:HyperLink>
                    </span>
                    <%# RenderLinked(DataBinder.Eval(Container.DataItem, "Linked"))%> 
                </ItemTemplate>
            </telerik:GridTemplateColumn>
        </Columns>
    </MasterTableView>
</telerik:RadGrid>


Protected Function RenderLinked(ByVal inputVal As String) As String
    Dim output As String = ""
    Try
        Dim svcs As New SystemServices
        If Not inputVal Is Nothing And Not String.IsNullOrEmpty(inputVal) Then
            If inputVal = True Then
                output = "<img src='"   Globals.gRootRelativeSecureURL("ImagesLayoutLink.png")   "' width=""13"" height=""13"" border=""0"" align=""absmiddle"">"
            Else
                'Dim item As GridDataItem = DirectCast(e.Item, GridDataItem)
                'Dim link As HyperLink = DirectCast(item("Link").Controls(0), HyperLink)
                'LinkButton.DisabledCssClass = True
                Me.Page.ClientScript.RegisterStartupScript(Me.GetType(), "StartupScript", "Sys.Application.add_load(function() { DisableHyperLinkCSS();  });", True)

                'output = "<a herf='#' onclick='showPersonLinkModal() ;'>Link</a>"
            End If
        End If
    Catch ex As Exception
        Globals.SendEmailError(ex, m_User.SessionID, System.Reflection.MethodBase.GetCurrentMethod.Name.ToString(), Request.RawUrl.ToString(), m_User.UserID)
    End Try
Return output
End Function
  

Ответ №1:

Если вы хотите установить атрибут какого-либо элемента управления visible=false в коде, когда строки привязаны к данным 1 на 1, вы можете использовать RowDataBound событие и написать следующий код в его обработчике

 Control_Type Control_ID = (Control_Type) e.Row.FindControl("Control_ID");
Control_ID.Visible = false;
  

И если вы хотите установить его в javascript,

 rgPhoneBook.Rows[Record_Index].Cells[0].Visible = false;
  

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

Комментарии:

1. Спасибо за вашу помощь, это то, что я написал: но все еще не работает! его маркировка e.Row как ошибка =»e не объявлен, он может быть недоступен из-за его уровня защиты» Затемнить ссылку как гиперссылку = DirectCast(e.Row.FindControl(«Link»), гиперссылка) link.Visible = False Нужно ли мне отправлять что-то в эту функцию, связанную с визуализацией????