可以帮助我使用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)?