C# 如何从web方法更新列表框?

C# 如何从web方法更新列表框?,c#,jquery,listbox,webmethod,bootstrap-multiselect,C#,Jquery,Listbox,Webmethod,Bootstrap Multiselect,我想根据在另一个列表框上选择的项目更新列表框。 对于列表框,我使用的是引导multiselect,因此我不能使用OnSelectedIndexChanged事件。因此,我在multiselect的DropDownHide事件上调用了一个web方法 JS 错误 现在我想我必须使用jquery AJAX,但我不知道如何发送sql数据对象并设置ListBox2.DataTextField。什么sql数据对象?为什么不将“FactoryName”和“pkFactoryId”从WebMethod发送回客户

我想根据在另一个列表框上选择的项目更新列表框。 对于列表框,我使用的是引导multiselect,因此我不能使用OnSelectedIndexChanged事件。因此,我在multiselect的DropDownHide事件上调用了一个web方法

JS

错误


现在我想我必须使用jquery AJAX,但我不知道如何发送sql数据对象并设置ListBox2.DataTextField。

什么sql数据对象?为什么不将“FactoryName”和“pkFactoryId”从WebMethod发送回客户端,并在UI端进行设置?您无法将asp.net元素绑定到web方法属性,因为这些元素的作用域在外部。您需要从webmethod返回一个列表,然后在js中创建/绑定它们。感谢vabii和Dinmyte,实际上我不知道如何发送iqueryable数据并在UI中访问它。什么sql数据对象?为什么不将“FactoryName”和“pkFactoryId”从WebMethod发送回客户端,并在UI端进行设置?您无法将asp.net元素绑定到web方法属性,因为这些元素的作用域在外部。您需要从webmethod返回一个列表,然后在js中创建/绑定它们。感谢vabii和Dinmyte,实际上我不知道如何发送iqueryable数据并在UI中访问它。
 <script>
 $(function () {
        $('[id*=listbox1]').multiselect({
            maxHeight: 150,
            enableFiltering: true,
            onDropdownHide: function (event) {
                var selected = $('[id*=ListBox1]').val();    
                PageMethods.ListBox1OnSelectedIndexChanged(selected);        //call server side function on selected index changed
            }
        });            
    });
</script>
  [WebMethod]
    public static void lbfSupplierOnChange(string[] data)
    {
        //here I want to access ListBox2 like this

        ListBox2.DataTextField = "FactoryName";
        ListBox2.DataValueField = "pkFactoryId";
        ListBox2.DataBind();
    }
An Object Reference is required for the non static field,method