всплывающая подсказка radcontrols и radgrid

#vb.net #telerik #telerik-grid

#vb.net #telerik #telerik-сетка

Вопрос:

Я пытаюсь воспроизвести что-то вроде этой демонстрации http://demos .telerik.com/aspnet-ajax/tooltip/examples/tooltipversustooltipmanager/defaultvb.aspx

используя radtooltipmanager и radgrid, но я получаю сообщение об ошибке, что default2 не определен

вот мой код

 Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
            If Me.IsPostBack Then
                'GridView does not keep its items' IDs after postback, so rebind it or else tooltip manager will not show tooltips
                RadGrid1.DataBind()
            End If
        End Sub


    Protected Sub OnAjaxUpdate(ByVal sender As Object, ByVal args As ToolTipUpdateEventArgs)
        Dim ctrl As Control = Page.LoadControl("default2.aspx")
        args.UpdatePanel.ContentTemplateContainer.Controls.Add(ctrl)
        Dim details As default2 = DirectCast(ctrl, default2)
        details.Country = args.Value
    End Sub
    Protected Sub Grid1_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)

        Dim row As Data.DataRowView = DirectCast(e.Row.DataItem, Data.DataRowView)
        If e.Row.RowType = DataControlRowType.DataRow Then
            Dim country As String = row("owed").ToString()
            RadToolTipManager1.TargetControls.Add(e.Row.ClientID, country, True)
        End If
    End Sub
  

и это их

 Private Sub Page_Load(sender As Object, e As System.EventArgs)
    If Me.IsPostBack Then
        'GridView does not keep its items' IDs after postback, so rebind it or else tooltip manager will not show tooltips
        Grid1.DataBind()
    End If
End Sub

Protected Sub OnAjaxUpdate(sender As Object, args As ToolTipUpdateEventArgs)
    Dim ctrl As Control = Page.LoadControl("InfoCustomers.ascx")
    args.UpdatePanel.ContentTemplateContainer.Controls.Add(ctrl)
    Dim details As InfoCustomers = DirectCast(ctrl, InfoCustomers)
    details.Country = args.Value
End Sub
Protected Sub Grid1_RowDataBound(sender As Object, e As GridViewRowEventArgs)
    Dim row As DataRowView = DirectCast(e.Row.DataItem, DataRowView)
    If e.Row.RowType = DataControlRowType.DataRow Then
        Dim country As String = row("Country").ToString()
        RadToolTipManager1.TargetControls.Add(e.Row.ClientID, country, True)
    End If

End Sub
End Class
  

Ответ №1:

Просто быстро просматривая ваш код, я вижу, что вы пытаетесь использовать Page.LoadControl() на странице WebForms, а не в пользовательском элементе управления. Я рекомендую создать пользовательский элемент управления (.ascx), копирующий вашу страницу WebForms (.aspx), и попытаться загрузить его вместо этого.