Tôi đang cố gắng sử dụng select2 với tải ajax.select2 với phương thức post ajax
Đây là mã của tôi:
clonedTemplate.find('[id^=detailsPhaseFinanceMinor_]').select2({
placeholder: "Select",
minimumInputLength: 1,
ajax: { // instead of writing the function to execute the request we use Select2's convenient helper
type: 'POST',
contentType: "application/json; charset=utf-8",
url: "mapBasic.aspx/GetFinSys",
dataType: 'json',
data: function (term, page) {
return "{'term':\"" + term + "\"}";
},
results: function (data, page) { // parse the results into the format expected by Select2.
// since we are using custom formatting functions we do not need to alter remote JSON data
return { results: data.Value };
}
}
});
Cuộc gọi ajax là một WebMethod/pagemethod trong code-behind của cùng một trang:
[WebMethod]
public static List<LookupCodeItem> GetFinSys(string term)
{
string stringToCompareTo = term.ToLower();
List<LookupCodeItem> result = new List<LookupCodeItem>();
// FIN SYS
using (mapEntities db = new mapEntities())
{
List<MPO_FINSYS_AMT> finSysCodes = (from x in db.MPO_FINSYS_AMT
select x).ToList();
foreach (MPO_FINSYS_AMT item in finSysCodes)
{
string valKey = string.Format("{0}.{1}.{2}", item.FY, item.MDOT_MPO_CD, item.FIN_SYS);
LookupCodeItem x = new LookupCodeItem();
x.Value = valKey;
x.ShortDescription = string.Format("{0}.{1}.{2}", item.FY, item.MDOT_MPO_CD, item.FIN_SYS); ;
x.LongDescription = string.Empty;
result.Add(x);
}
}
return result;
}
Khi nhập dữ liệu vào các textbox, các Yêu cầu POST được thực hiện và json được gửi dường như được định dạng đúng.
Tuy nhiên, phản hồi từ trang đích là toàn bộ trang html. Đó là sự hiểu biết của tôi rằng điều này có thể xảy ra với các phương thức đăng nếu bạn không có "contentType" được đặt đúng trong cuộc gọi ajax. Tôi đã đặt nó giống như tất cả các cuộc gọi ajax khác của tôi hoạt động trên trang (chúng không sử dụng select2).
Chọn2 có bỏ qua thuộc tính "contentType" không? Hay có điều gì khác tôi đã làm sai?
** EDIT ** Sau khi đăng này, tôi thấy vấn đề này được liệt kê tại trang web github Select2 của: Issue 492 - Add Support for contentType to Ajax
Dường như nó không vượt qua contentType qua. Tôi có thể bỏ qua selet2 được xây dựng trong helper ajax và sử dụng của riêng tôi được xác định bằng tay?
Đó là đề xuất nên được đưa vào nhận xét, chứ không phải trong câu trả lời. Ngoài ra, làm cách nào để thay đổi kỹ thuật lập trình giúp OP, thực sự? – ilter
Chỉ là cố gắng để có được áp phích một cách dễ dàng đề nghị/hỗ trợ để sửa chữa. Thấy như điều này đã được thực hiện cách đây 7 tháng, không có nhiều tôi có thể làm gì về nó ngay bây giờ! :-) –