我如何使用javascript调用在代码中编写的非静态方法

本文关键字:静态方法 代码 何使用 javascript 调用 | 更新日期: 2023-09-27 18:04:03

请帮助我从代码后面调用非静态方法,使用json对象。

以下代码用于aspx页面:

 function columnDropdownScript() {
                if (id == "ExpressionsLink") {
                    var dropdown = document.getElementById("<%=ddlTableNames.ClientID%>");
                }
                /
/ Configure AJAX call to server on itemChange of ddlTableNames
                $.ajax({
                    type: "POST",
                    url: "Webtop.aspx/FillColumnDropdown",
                    data: requestTableParameters,
                    //contentType: "plain/text",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function(msg) {
                        if (id == "ExpressionsLink") {
                            $("#ddlColumnNames").empty();
                            }
                        }
                        //  alert('Check Column DropDown' + msg.d.length);
                    },
                    error: DisplayError //Event that'll be fired on Error
                });
            }                                                                   
下面的代码是在aspx.cs页面 中编写的
[WebMethod]
    public static List<string> FillColumnDropdown(string selTableName)
    {
       //Code to update Selected Columns in table
    }             

我如何使用javascript调用在代码中编写的非静态方法

既然您想调用page的实例方法,我相信您想使用ASP提供的其他页面的控件属性或特性。. NET平台,如ViewState或其他。但是,当您发出普通ajax请求时,就不能使用这些可能性。所以你唯一的选择就是使用ASP。净Ajax。在这种情况下,页面经历了完整的生命周期,包括在服务器上重新创建所有页面的控件实例,读取ViewState等等。

主要用于使用ASP。你不需要任何自定义javascript调用,因为所有需要的javascript都是开箱即用的。你需要什么它只是添加ScriptManager和UpdatePanel控件到页面上,把你的下拉在UpdatePanel和设置AutoPostback上它为真。这是所有。之后,您可以使用该下拉列表的服务器端SelectedIndexChanged事件处理程序,它将被异步触发。

有关使用UpdatePanel的更多信息,请参见此链接:编辑:顺便说一句:如果你只需要会话或应用程序状态或缓存,但没有页面的控件属性和ViewState,你仍然可以使用纯ajax调用和静态服务器方法。

实际上AJAX是相当棘手的事情:)