javascript - 如何使用 ajax 和 ac# 方法填充下拉列表
问题描述
嗨,我的 c# 方法是这样的:
[WebMethod]
protected static void fillList(HiddenField hiddenControl, System.Web.UI.WebControls.DropDownList listinc)
{
int dato = 0;
string strSql;
dato = Convert.ToInt32(hiddenControl.Value);
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["default"].ToString());
conn.Open();
strSql = "SELECT DISTINCT incid FROM HisReportes WHERE peri = " + dato;
SqlCommand camAND = new SqlCommand(strSql, conn);
System.Data.DataTable tablainc = new System.Data.DataTable();
camAND.CommandTimeout = 36000;
tablainc.Load(camAND.ExecuteReader());
foreach (DataRow dtrw in tablainc.Rows)
{
listinc.Items.Add(dtrw[0].ToString());
}
}
我使用 onlick 函数进行了测试,它可以工作,但我需要从 Ajax 函数中调用它:
$.ajax({
type: "POST",
url: "Incio.aspx/fillList",
data: '{hiddenControl , listinc, dtrw }',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data)
{
$.each(data, function (){
$("listinc").append($("<option />").val(this.incidente).text(this.dtrw[0]));
});
},
failure: function () {
alert("Failed!");
}
});
那是我的 ajax 函数,但它没有填充下拉列表。
解决方案
您需要从 WebMethod 返回列表,我建议您从 WebMethod 返回一个字符串数组。
[WebMethod]
public static string[] fillList()
{
your code here....
return listinc.ToArray();
}
所以,在成功函数中导入Ajax
$.ajax({
type: "POST",
url: "./Inicio.aspx/fillList",
...
success: function (data) {
let data = data["d"];
let dropdown = $("#listinc");
for (let i = 0; i < data.length; i++) {
// put here your data
dropdown.append(`<option>${ data[i] }</option>`);
}
}
});
推荐阅读
- java - Java:是否有用于布尔值的 ++ 版本?
- django - Django 字段的自定义 __eq__() 函数
- python - __dict__ 和 getattr 有什么区别?
- javascript - 箭头函数与 Javascript 中的函数的行为差异
- sql - 从 JSON 中选择数据
- java - 在解析服务器中删除一行?
- haskell - gtk 窗口停止更新,即使应用程序似乎正在运行
- python - 如何设置 DSLR (Canon T3i) 以使用 opencv-python
- angular - 在角度测试或 fakeAsync 期间进行真正的路由器导航是否好?
- python - 如何判断是否在 Windows Git Bash 中激活了 virtualenv