__doPostBack传递参数

时间:2013-03-11 16:40:04

标签: jquery asp.net json jquery-ui c#-4.0

我正在尝试使用_doPostBack()将参数从JQuery传递给C#,但由于某种原因,我无法捕获实际参数。

我的JQuery如下: -

    function SearchText() {
    $("#persons").autocomplete({
        source: function (request, response) {
            $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: "JQAutoComplete2.aspx/FetchPersons",
                data: "{'name':'" + document.getElementById('persons').value + "'}",
                dataType: "json",
                success: function (data) {
                    response(data.d);
                    var val = document.getElementById('persons').value;
                    _doPostBack('UpdatePanel1', val);
                },
                error: function (result) {
                    alert("Error");
                }
            });
        },
        messages: {
            noResults: '', results: function () {
            }
        }

    });
}

我的代码隐藏如下: -

        protected void UpdatePanel1_Load(object sender, EventArgs e)
    {
        var value = Request.Params["__EVENTARGUMENT"];


        RadGrid1.DataSource = ctx.GetDataFromXML(false, 0);
        RadGrid1.DataBind();
    }

虽然调用了此方法,但val不会传递给方法,并且EventArgument仍为“”。

我尝试了Request.Forms [“_ EVENTARGUMENT”],还请求[“ _EVENTARGUMENT”],但我仍然得到一个空字符串。

感谢您的帮助和时间

1 个答案:

答案 0 :(得分:0)

在客户端:

__ doPostBack('id','value');

如上所述=> 两个下划线

在服务器端:

Request["__EVENTARGUMENT"]

此处还有两个下划线

你写过你已经尝试过已经请求[“_ EVENTARGUMENT”] =>但你没有使用两个下划线!