반응형
ajax를 사용하여 로드 데이터 2개를 선택하면 옵션을 선택할 수 없습니다.
저는 다음과 같은 코드(자바스크립트)를 가지고 있습니다.
$('#cbxConnections').select2({
minimumInputLength: 0,
multiple: false,
allowClear: true,
placeholder:{
text:"@Diccionario.Connections",
id:" @Diccionario.Connections"
},
ajax:{
url:'@Url.Action("GetActiveConnections","Admin")',
dataType: 'json',
type:'post',
data:function(params){
return {
q: params.term
};
},
processResults: function(data,page){
return {
results: data
};
}
},
escapeMarkup: function (markup) {
return markup;
},
templateResult: function(response){
return '<div>'+response.Name+'</div>';
},
templateSelection: function(response){
return response.Id;
},
id: function(connection){
console.log(connection);
}
});
서버측에서는 ASP MVC 4를 사용하고 있습니다.ajax를 사용하여 데이터 가져오기를 선택하고 옵션을 렌더링하지만 이 옵션은 선택할 수 없습니다.다른 게시물을 읽어보니 id 기능으로 설명이 되어있는데 select2 버전에서는 이 기능이 사라지는 것 같습니다 2.4를 사용하고 있습니다.
github "원격 데이터 로드 중"에 나와 있는 문서에 있는 axis의 예를 따르고 있습니다.
agax 응답에 id 및 text 속성이 없으면 클라이언트 측에서 수정해야 합니다.
버전 4.0의 요구 사항입니다(이유를 알 수 없음).
ajax: {
processResults: function (data, params) {
params.page = params.page || 1;
// you should map the id and text attributes on version 4.0
var select2Data = $.map(data.result.data, function (obj) {
obj.id = obj._id.$id;
obj.text = obj.name;
return obj;
});
return {
results: select2Data,
pagination: {
more: data.result.more
}
};
}
}
옵션 선택을 취소할 수 없는 문제가 발생했고(선택 배수) ID를 번호로 전달했지만 문자열이어야 합니다.
var select2Data = $.map(data.result.data, function (obj) {
obj.id = '' + obj._id.$id; //small fix
obj.text = obj.name;
return obj;
});
언급URL : https://stackoverflow.com/questions/29035717/select2-load-data-using-ajax-cannot-select-any-option
반응형
'programing' 카테고리의 다른 글
Angular의 사용자 정의 양식 구성요소에서 FormControl에 액세스합니다. (0) | 2023.10.22 |
---|---|
간단한 Oracle 변수 SQL 할당 (0) | 2023.10.22 |
외국 열쇠가 왜 이래요? (0) | 2023.10.22 |
DataTable을 직렬화할 수 없습니다.DataTable 이름이 설정되지 않았습니다. (0) | 2023.10.22 |
윈도우즈에서 서명되지 않은 __int64의 printf 형식 (0) | 2023.10.22 |