使用 ajax 和分页的带有 ASP 下拉列表控件的 Select2
Select2 with ASP dropdownlist control using ajax and paging
拳头我使用 ASP.Net 下拉列表因为它是我使用的事件
<asp:DropDownList ID="e24" runat="server" class="form-control select2">
<asp:ListItem Text="--إختر--" Selected="True" Value="0" />
<asp:ListItem Text="مفتوحة" Value="OPN" />
<asp:ListItem Text="مغلقة" Value="CLO" />
</asp:DropDownList>
我想使用 select2 并使用 asp:DropDownList
的分页功能
我试过 ajax
$(document).ready(function () {
//$("#e24").select2();
$("#e24").select2({
ajax: {
url: '<%= ResolveUrl("~/ar/UserControls/WebForm1.aspx/getResults") %>',
dataType: 'json',
delay: 100,
data: function (params) {
//alert(params.page);
return {
q: params.term, // search term
page: params.page
};
},
processResults: function (data, params) {
// parse the results into the format expected by Select2
// since we are using custom formatting functions we do not need to
// alter the remote JSON data, except to indicate that infinite
// scrolling can be used
params.page = params.page || 1;
return {
results: data.items,
pagination: {
more: (params.page * 30) < data.total_count
}
};
},
cache: true
},
//escapeMarkup: function (markup) { return markup; }, // let our custom formatter work
minimumInputLength: 1,
//templateResult: formatRepo, // omitted for brevity, see the source of this page
//templateSelection: formatRepoSelection // omitted for brevity, see the source of this page
}
);
});
和 C# 代码
[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod(ResponseFormat = System.Web.Script.Services.ResponseFormat.Json)]
public static String getResults(String q, String page_limit)
{
return "[{ \"id\": \"1\", \"text\": \"test\" }]";
}
拳头 ajax 没有开火也没有用!!
我怎样才能让它工作
我也用 <select\>
试过这个,但是阶梯 ajax 不能用 webMethods
我只是想让它工作并从 webMethod 或 asp:DropDownList 它自己或任何其他方式
获取数据
如果不可能?我如何使用 <select\>
标签或其他方式做到这一点
(我知道已经快一年了,但以防万一它对其他人有用)我遇到了同样的问题,我所做的是添加:
contentType: "application/json; charset=utf-8",
type: 'POST',
还有
data: function (params) {
return JSON.stringify({ q: params.term, page_limit: 10 });
}
select2 似乎需要 contentType
您可以使用带有下拉 clientID 的 select2 :-
$(document).ready(function () {
$("#<%=DropDownList1.ClientID%>").select2({
placeholder: "Select Item",
allowClear: true
});
});
<asp:DropDownList ID="DropDownList1" runat="server" CssClass="form-control input-sm"></asp:DropDownList>
有关更多信息,请参阅:
https://c-sharplibrary.blogspot.com/2017/08/create-select-2-dropdownlist-in-aspnet-c.html
拳头我使用 ASP.Net 下拉列表因为它是我使用的事件
<asp:DropDownList ID="e24" runat="server" class="form-control select2">
<asp:ListItem Text="--إختر--" Selected="True" Value="0" />
<asp:ListItem Text="مفتوحة" Value="OPN" />
<asp:ListItem Text="مغلقة" Value="CLO" />
</asp:DropDownList>
我想使用 select2 并使用 asp:DropDownList
的分页功能我试过 ajax
$(document).ready(function () {
//$("#e24").select2();
$("#e24").select2({
ajax: {
url: '<%= ResolveUrl("~/ar/UserControls/WebForm1.aspx/getResults") %>',
dataType: 'json',
delay: 100,
data: function (params) {
//alert(params.page);
return {
q: params.term, // search term
page: params.page
};
},
processResults: function (data, params) {
// parse the results into the format expected by Select2
// since we are using custom formatting functions we do not need to
// alter the remote JSON data, except to indicate that infinite
// scrolling can be used
params.page = params.page || 1;
return {
results: data.items,
pagination: {
more: (params.page * 30) < data.total_count
}
};
},
cache: true
},
//escapeMarkup: function (markup) { return markup; }, // let our custom formatter work
minimumInputLength: 1,
//templateResult: formatRepo, // omitted for brevity, see the source of this page
//templateSelection: formatRepoSelection // omitted for brevity, see the source of this page
}
);
});
和 C# 代码
[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod(ResponseFormat = System.Web.Script.Services.ResponseFormat.Json)]
public static String getResults(String q, String page_limit)
{
return "[{ \"id\": \"1\", \"text\": \"test\" }]";
}
拳头 ajax 没有开火也没有用!!
我怎样才能让它工作
我也用 <select\>
试过这个,但是阶梯 ajax 不能用 webMethods
我只是想让它工作并从 webMethod 或 asp:DropDownList 它自己或任何其他方式
如果不可能?我如何使用 <select\>
标签或其他方式做到这一点
(我知道已经快一年了,但以防万一它对其他人有用)我遇到了同样的问题,我所做的是添加:
contentType: "application/json; charset=utf-8",
type: 'POST',
还有
data: function (params) {
return JSON.stringify({ q: params.term, page_limit: 10 });
}
select2 似乎需要 contentType
您可以使用带有下拉 clientID 的 select2 :-
$(document).ready(function () {
$("#<%=DropDownList1.ClientID%>").select2({
placeholder: "Select Item",
allowClear: true
});
});
<asp:DropDownList ID="DropDownList1" runat="server" CssClass="form-control input-sm"></asp:DropDownList>
有关更多信息,请参阅: https://c-sharplibrary.blogspot.com/2017/08/create-select-2-dropdownlist-in-aspnet-c.html