1

我正在尝试使用 _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"],也尝试了 Request[ "_EVENTARGUMENT "] 但我仍然得到一个空字符串。

感谢您的帮助和时间

4

1 回答 1

0

在客户端:

__doPostBack('id', 'value');

正如 sll 提到的 =>两个下划线

在服务器端:

Request["__EVENTARGUMENT"]

这里还有两个下划线

你写了你已经尝试过 Request["_EVENTARGUMENT"] => 但你没有使用两个下划线!

于 2013-03-11T16:53:16.777 回答