Javascript 如何使用jQueryAjax请求触发代码隐藏事件处理程序

Javascript 如何使用jQueryAjax请求触发代码隐藏事件处理程序,javascript,jquery,asp.net,ajax,Javascript,Jquery,Asp.net,Ajax,我有一个ajax面板: <telerik:RadAjaxPanel ID="rap" runat="server"> ... <-- Contains several Hidden fields --> </telerik:RadAjaxPanel> 我成功地从Javascript调用ajax请求,如下所示: var panel = $find('<%=rap.ClientID%>'); panel.ajaxRequest();

我有一个ajax面板:

<telerik:RadAjaxPanel ID="rap" runat="server">
    ...
    <-- Contains several Hidden fields -->
</telerik:RadAjaxPanel>
我成功地从Javascript调用ajax请求,如下所示:

var panel = $find('<%=rap.ClientID%>');
panel.ajaxRequest();
var panel = $find('<%=rap.ClientID%>');
$.ajax({
    async: false,
    context: panel
}).done(function() {
    // Handle the rest of the function if the ajax call succeeded
});
var面板=$find(“”);
panel.ajaxRequest();
调用ajax请求的方法需要在代码隐藏中设置的一个隐藏字段的值。这样做并不能将值正确地传递给客户机,因为它是异步的。我尝试使用jQuery同步触发请求,如下所示:

var panel = $find('<%=rap.ClientID%>');
panel.ajaxRequest();
var panel = $find('<%=rap.ClientID%>');
$.ajax({
    async: false,
    context: panel
}).done(function() {
    // Handle the rest of the function if the ajax call succeeded
});
var面板=$find(“”);
$.ajax({
async:false,
背景:小组
}).done(函数(){
//如果ajax调用成功,则处理函数的其余部分
});

当我逐步浏览代码时,我发现ajax调用在运行.done函数时成功。但是,代码隐藏中处理请求的方法永远不会被触发。如何让这个调用正确地触发代码隐藏处理的事件?

我创建了一个工作示例,演示我“认为”您正在尝试做什么。试试这个

javascript:

<script>
    function submitViaAjax() {
        var rap = $find('<%=rap.ClientID%>');

        rap.ajaxRequest();
    }

    function rap_onResponseEnd(sender, arg) {

        alert(document.getElementById('<%=hdnValue.ClientID%>').value);
    }
</script>

我认为你应该使用$find,而不是$find。后者是一个查找元素的jquery方法。$find方法获取与ajax面板关联的javascript对象。然后调用.ajaxRequest应该在服务器端触发请求处理程序事件,这是我文章中的一个输入错误。我已经编辑好了。哦,我明白了,使用ajax方法不会触发ajaxRequest处理程序。只有在调用.ajaxRequest()时才会触发该命令。尝试为ajax面板的end request client事件放置一个事件处理程序,然后看看是否可以在那里处理所需的内容。只要隐藏字段在ajax面板中,就应该对其进行更新。
Protected Sub rap_AjaxRequest(sender As Object, e As Telerik.Web.UI.AjaxRequestEventArgs) Handles rap.AjaxRequest
    hdnValue.Value = "123456"
End Sub