将用户控件加载到RadToolTip中?

时间:2014-02-23 17:31:30

标签: c# asp.net user-controls telerik tooltip

我正在尝试在点击按钮时将用户控件加载到RadToolTip。单击按钮后,我想加载用户控件,然后调用控件的Initialize方法,传递我在页面视图状态中存储的对象集合。

以下是RadToolTip标记:

<telerik:RadToolTip runat="server" ID="_MyToolTip" HideEvent="ManualClose" 
    Position="Center" Width="500px" Height="400px" Animation="Fade"
    ShowEvent="OnClick" ShowDelay="0" RelativeTo="Element"
    TargetControlID="_MySelectButton" RenderInPageRoot="True" />

以下是Click的{​​{1}}事件处理程序:

MyButton

我想要它,以便在protected void _MySelectButton_Click(object sender, EventArgs e) { Control ctrl = Page.LoadControl(@"~/UserControls/MyUserControl.ascx"); var muc = (ctrl as MyUserControlClass); muc.Initialize(_MyViewStateCollection); } 触发时,它会创建_MySelectButton_Click的新实例,然后该事件将传播到MyUserControl,以便显示工具提示,并且然后用户控制在工具提示中。但是,现在只显示RadToolTip,其中没有用户控制权。

我在Telerik的网站上找到this post,其中说明:

  

不会针对工具提升元素触发点击事件

     

RadToolTip为客户端事件和事件注册事件处理程序   因此他们取消了进一步的点击传播,以便   工具提示仍然可见,因为回发会隐藏它。 这意味着   当ShowEvent设置为OnClick元素,如按钮,   CheckBoxes,RadioButtons,LinkBut​​tons可能无法触发其服务器事件   甚至他们的客户端行为可能会改变(特别是对于   RadioButton和CheckBox - 他们不会改变他们的状态,因为   点击被取消)。要避免这种情况,请将ShowEvent设置为OnFocus或   例如OnMouseOver。这同样适用于   RadToolTipManager也是。

如果问题是按钮的RadToolTip基本上不兼容,因为Click阻止点击传播,我该如何实现所需的行为? 底线,我希望能够点击按钮,打开工具提示,然后在该工具提示中打开我的用户控件。请帮忙,谢谢!

1 个答案:

答案 0 :(得分:1)

我在Telerik的网站上找到this post,其中有人在同一页面上遇到两个RadToolTipManager个对象的问题。

由于我一直在尝试将RadToolTip添加到已存在RadToolTipManager的网页,因此我决定将RadToolTip更改为其他RadToolTipManager并明确指定TargetControlID以引用_MySelectButton,现在单击按钮会生成工具提示以及预期的用户控件元素。

<telerik:RadToolTipManager runat="server" ID="_MyToolTipManager"
    OffsetY="-1" OffsetX="250" HideEvent="ManualClose" Width="500" Height="400"
    RelativeTo="Element" RenderInPageRoot="True"
    OnAjaxUpdate="MySelectButtonToolTipManagerAjaxUpdate"
    ShowEvent="OnClick" Animation="Slide">

    <TargetControls>
        <telerik:ToolTipTargetControl TargetControlID="_MySelectButton" />
    </TargetControls>

</telerik:RadToolTipManager>

以下是RadToolTipManager的{​​{1}}事件的关联处理程序:

OnAjaxUpdate

问题解决了!