문제 1: 웹서버나 일반 응용프로그램 처리 프로그램(.ashx) 프로그램에서 json 문자열을 얻어오면 자동으로 인식하지 못하고 문자열 형태로 해석된다. 사실 이 문제를 해결하는 것은 어렵지 않습니다. 메소드를 오버로드하기만 하면 됩니다. 코드의 일부가 아래에 게시되어 있습니다. 빨간색으로 표시된 부분은 주의가 필요합니다.
$("#txt").autocomplete ("/ Asmx/ExecutePlan.ashx", {
extraParams:{hosid:HosID,profid:ProfID},
minChars: 0,
max: 700,
mustMatch: true,
autoFill: true ,
selectFirst: true,
scrollHeight: 220,
너비:640,
scroll:true,
parse: function(data){
var obj=eval( "(" 데이터 ")");
var row = [];
for(var i = 0; irow[i] = {data:obj[ i], //json
value: obj[i].instName, //목록의 값
결과: obj[i].instName} //드롭다운 목록에 표시됩니다.
}
if(obj.length == 1)
{
// $("#hfInstID").val(obj[0].executeID)// $("#Button1 ").click ();
}
행 반환;
} ,
formatItem: function(row, i, total) {
},
formatMatch: function(row, i, max) {
},
formatResult: function(row, i, max) {
}
})
이 문제는 다음과 같습니다. 해결되었지만 새로운 문제가 발생했습니다. 즉, formatItem 및 formatMatch 이벤트가 모두 실패했습니다. 당분간 해결 방법을 모르겠습니다. 하지만 결과를 채울 때 몇 가지 작업을 수행하려면 이 메서드를 호출하면 됩니다. 이는 이전 $("#txt").autocomplete 바인딩 메서드와 별도로 작성된다는 점에 유의하세요. 위에 적었습니다. 아래처럼요.
$("#txt").result(function(event, data, formatted) {
})
구체적인 매개변수 의미는 공식 개발 문서를 참조하세요. 현재 사용하고 있는 기능은 한정되어 있고, 앞으로 새로운 기능이 생기면 더 추가하겠습니다.
한 가지 추가 사항: $("#txt").flushCache() 메서드는 자동 완성 캐시를 지우는 데 사용됩니다. 때로는 매개 변수를 변경한 후 캐시 레거시 문제가 발생할 수 있습니다.