在 Asp.net HTML 控件中动态获取城市
Fetching Cities dynamically in Asp.net HTML control
我有一个 HTML 国家/地区下拉列表。现在我想使用 ajax
相应地填充城市下拉列表
<select class="form-control" id="ddCountry" runat="server" tabindex="8"></select>
<select class="form-control" id="ddCity" runat="server" tabindex="9"></select>
<script type="text/javascript">
$('#ddCountry').on('change', function () {
var storeData = { countryId: this.value }
$.ajax({
type: "POST",
url: "UserRegistration.aspx/GetCities",
data: JSON.stringify(storeData),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
alert("The data in list is "+data);
},
error: error
});
});
</script>
我在.cs页面的方法如下:
[WebMethod]
public static List<CityBO> GetCities(string countryId)
{
//returning cities
}
问题是我可以在 GetCities 方法中获取数据,但无法在 ddCity 列表中显示它,因为它是一个 HTML 控件并且该方法是静态的,所以
ddCity.Items.AddRange(list_of_countries)
不起作用,因为 ddCity 在静态方法中未被识别。请告诉如何填写下拉列表。
您不能在静态方法中访问控件。您需要 return 来自 webmethod 的城市列表,并使用 javascript.In 成功方法 ajax 填写下拉列表,编写如下代码。
success: function (data) {
fillDropDown(data.d);
}
function fillDropDown(data){
var html = "";
for (var i = 0; i < data.length; i++)
{
html += "<option value='" + data[i].ValueField+ "'>" +
data[i].TextField+ "</option>";
}
$("select[id$=ddlCity]").html(html);
}
您可以使用下面给出的 ajax 成功函数。
success: function (data)
{
var lankanListArray = JSON.parse(data.d);
// running a loop
$.each(lankanListArray, function (index, value)
{
$("#ddlCity").append($("<option></option>").val(this.name).html(this.value));
});
}
我有一个 HTML 国家/地区下拉列表。现在我想使用 ajax
相应地填充城市下拉列表<select class="form-control" id="ddCountry" runat="server" tabindex="8"></select>
<select class="form-control" id="ddCity" runat="server" tabindex="9"></select>
<script type="text/javascript">
$('#ddCountry').on('change', function () {
var storeData = { countryId: this.value }
$.ajax({
type: "POST",
url: "UserRegistration.aspx/GetCities",
data: JSON.stringify(storeData),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
alert("The data in list is "+data);
},
error: error
});
});
</script>
我在.cs页面的方法如下:
[WebMethod]
public static List<CityBO> GetCities(string countryId)
{
//returning cities
}
问题是我可以在 GetCities 方法中获取数据,但无法在 ddCity 列表中显示它,因为它是一个 HTML 控件并且该方法是静态的,所以
ddCity.Items.AddRange(list_of_countries)
不起作用,因为 ddCity 在静态方法中未被识别。请告诉如何填写下拉列表。
您不能在静态方法中访问控件。您需要 return 来自 webmethod 的城市列表,并使用 javascript.In 成功方法 ajax 填写下拉列表,编写如下代码。
success: function (data) {
fillDropDown(data.d);
}
function fillDropDown(data){
var html = "";
for (var i = 0; i < data.length; i++)
{
html += "<option value='" + data[i].ValueField+ "'>" +
data[i].TextField+ "</option>";
}
$("select[id$=ddlCity]").html(html);
}
您可以使用下面给出的 ajax 成功函数。
success: function (data)
{
var lankanListArray = JSON.parse(data.d);
// running a loop
$.each(lankanListArray, function (index, value)
{
$("#ddlCity").append($("<option></option>").val(this.name).html(this.value));
});
}