RadControls for ASP.NET(telerik)中的OnClientClick和AJAX无法正常工作

时间:2012-04-02 12:05:06

标签: asp.net vb.net telerik

我有以下代码:

<telerik:RadAjaxPanel ID="RadAjaxPanel1" runat="server" LoadingPanelID="rlpMain">
    <asp:ImageButton ID="ImageButton1" runat="server" 
        OnClientClick="return confirm('Are you sure?');" />
</telerik:RadAjaxPanel>

此代码不会触发我在.vb文件中编写的事件后面的代码。

请帮助我......

2 个答案:

答案 0 :(得分:4)

可能需要向用户提供确认对话框,并在接受时启动AJAX请求。使用标准回复的确认通常如下所示:

<asp:ImageButton ID="ImageButton1" runat="server" 
    OnClientClick="return confirm('Are you sure?');" />

OnClientClick应该稍微更改以使用AJAX:

<asp:ImageButton ID="ImageButton2" runat="server" 
    OnClientClick="if (!confirm('Are you sure?')) return false;" />

当通过向RadAjaxManager添加必要的AJAX设置或将按钮放在RadAjaxPanel控件中时,按钮被ajaxified。

或者,OnRequestStart客户端事件可用于实现更复杂的逻辑。这是一个示例脚本:

<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
    <script type="text/javascript">
        function OnRequestStart(ajaxControl, eventArgs) {
            var eventTarget = eventArgs.get_eventTarget(); 
            if (eventTarget == "<%= ImageButton1.UniqueID %>") {
                return confirm('Are you sure?');
            }
            else {
                return false;
            }
        }
    </script>
</telerik:RadCodeBlock>

答案 1 :(得分:0)

如果您想坚持使用RadControls,可以使用RadButton作为此处定义的ImageButton:

http://www.telerik.com/help/aspnet-ajax/button-image-buttons.html

创建一个按钮,将OnClientClicking属性设置为一个函数,该函数在下面调用一个确认(或radconfirm,用于粘贴在telerik中):

function ConfirmDeletion(sender, args) {
    var ContinuePostBack = Function.createDelegate(sender, function (clickedOK) {
        if (clickedOK) {
            this.click();
        }
    });
    var text = "Are you sure you wish to delete this attribute?";
    radconfirm(text, ContinuePostBack, 300, 100, null, "Deletion");
    args.set_cancel(true);
}

这将取消回发,但如果用户单击“确定”,则通过委托ContinuePostBack单击该按钮。我已经使用这段代码来提示删除。