如何使用C#在ASP.NET中的Web服务绑定下拉列表



可以帮助我使用C#

在ASP.NET中的Web Services绑定下拉列表
    [WebMethod]
public DataTable dropdwnfill()
{
    DataTable ds;
    SqlCommand cmd = new SqlCommand("select itemname from tbl_pro", con);
    SqlDataAdapter dap = new SqlDataAdapter(cmd);
    ds = new DataTable();
    dap.Fill(ds);
    ds.TableName = "MyDt";
    return ds;
}

预先感谢

如果我正确理解了要求,则要从服务器端填充下拉控件,但是从UI调用该控件(例如,AJAX调用)。

首先,您也可以使用Page-Method做同样的事情。在服务器端方法中填充所需的数据(例如dropdwnfill()),然后返回行集合。然后通过UI的AJAX调用消耗该方法,并填充下拉菜单。请参阅下面:

/*structure to be return*/
   public class DropDownValue
    {
        public string name { get; set; }
        public string value { get; set; }
    }
/*server side page-method*/
        [WebMethod]
        public static List<DropDownValue> dropdwnfill()
        {            
           // sample data population in list
            DropDownValue dropDownValue1 = new DropDownValue();
            dropDownValue1.name = "TestName1";
            dropDownValue1.value = "1";
            DropDownValue dropDownValue2 = new DropDownValue();
            dropDownValue2.name = "TestName2";
            dropDownValue2.value = "2";
            List<DropDownValue> lst = new List<DropDownValue>();
            lst.Add(dropDownValue1);
            lst.Add(dropDownValue2);
            return lst;
        } 
/*Consume in UI*/
$(document).ready(function () {       
        $("[id*=btnLoadDropDown]").click(function () { 
            $.ajax({
                type: "POST",
                url: "default.aspx/dropdwnfill",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                error: function (jqXHR) {
                    //do required stuff for error
                    alert(jqXHR.responseText);                    
                }.bind(this),
                success: function (msg) {                    
                    var option = '';
                    if (msg.d.length > 0) {                       
                        for (i = 0; i < msg.d.length; i++) {                            
                            option += '<option value="'+ msg.d[i].value + '">' + msg.d[i].name + '</option>';
                        }                       
                        $('#drpTest').append(option);                       
                    }
                }.bind(this)
            });
            return false;
        });
    });
/*UI element Design*/
<div>
<asp:DropDownList ID="drpTest" runat="server" AutoPostBack ="false" Width="356px"> </asp:DropDownList>
</div>
<asp:Button ID ="btnLoadDropDown" runat ="server" Width="354px" Text="Load Drop Down" AutoPostBack ="false"/>

其次,Web服务的目的是公开终点。因此,您还可以创建一个Web服务以仅从服务器获取数据,然后如前所述,填充下拉菜单。要创建/消费Web服务,您可以参考:如何在Visual Studio 2012中创建Web服务(服务器&amp; client)?

相关内容

  • 没有找到相关文章

最新更新