用Telerik Radwindow替换ajax:ModalPopupExtender

时间:2016-03-28 04:01:13

标签: asp.net vb.net telerik ajaxcontroltoolkit radwindow

目前我的网站使用ajax:ModalPopupExtender将我的网格数据显示为弹出窗口,现在我想用Telerik RadWindow替换它以与网站的UI保持一致。

但是,我还没有办法做到这一点。因为ajax:ModalPopupExtender是服务器端而Radwindow是客户端。

有什么方法可以解决我的问题吗?

请给我一个建议。

场景:在我的网站中,有一个名为“mybutton”的按钮。当我点击它时,ajaxToolkit:ModalPopupExtender将在弹出窗口下显示我的数据。

以下是我的* .ascx文件中的代码:

<asp:LinkButton ID="myHiddenControl" runat="server" Text=""></asp:LinkButton>

<ajaxToolkit:ModalPopupExtender runat="server" 
    ID="myModalPopupExtender"
    TargetControlID="myHiddenControl" 
    BehaviorID="programmaticModalPopup"
    PopupControlID="myPanel" 
    BackgroundCssClass="modalBackground"
    DropShadow="True" 
    RepositionMode="RepositionOnWindowScroll" 
    DynamicServicePath=""
    Enabled="True">
</ajaxToolkit:ModalPopupExtender>

<asp:Panel runat="server" 
    CssClass="modalPopup" 
    ID="myPanel"
    Style="width: 440px; height: 500px; padding: 10px;" meta:resourcekey="Resource2">

    <div>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
            <ContentTemplate>
                <table>
                    <!-- show my data in a table -->
                </table>
            </ContentTemplate>
        </asp:UpdatePanel>
    </div>
</asp:Panel>

这是vb代码

Protected Sub mybutton_Click(ByVal sender As Object, ByVal e As EventArgs) Handles mybutton.Click
    myModalPopupExtender.Show()
End Sub

1 个答案:

答案 0 :(得分:0)

使用对话框的ContentTemplate并注册脚本以显示它。基本上

        <telerik:RadWindow ID="RadWindow1" runat="server">
            <ContentTemplate>
                <asp:Panel runat="server"
                           CssClass="modalPopup"
                           ID="myPanel"
                           Style="width: 440px; height: 500px; padding: 10px;" meta:resourcekey="Resource2">

                    <div>
                        <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
                            <ContentTemplate>
                                <table>
                                    <!-- show my data in a table -->
                                </table>
                            </ContentTemplate>
                        </asp:UpdatePanel>
                    </div>
                </asp:Panel>
            </ContentTemplate>
        </telerik:RadWindow>

 Dim script As String = "function f(){$find(""" + RadWindow1.ClientID + """).show(); Sys.Application.remove_load(f);}Sys.Application.add_load(f);"
 ScriptManager.RegisterStartupScript(Page, Page.GetType(), "key", script, True)