0

내가 열 이름의 무리와 함께 드롭 다운리스트를 채우는 jQuery를 자동 완성과 MVC를 사용하고 치료하지 배열.jQuery를 자동 완성 문제 - 제대로

사용자가 내 양식에서 DropDownBox의 값을 변경할 때마다 내 컨트롤러에 새 자동 완성 상자를 채울 새로운 열 목록 (JSON 결과로 래핑 된 배열)을 반환하도록 요청합니다.

내 문제는 자동 완성이 단어 사이를 구별하지 않고 대신에 c, h, a, r, a, c, t, e, r 문자를 사용한다고 주장합니다. 그것은 매우 성가신 일입니다. 여기에 코드입니다 :

function PopulateColumnsList(list) { 
    $(".columnDropdown").setOptions({ data: list }); 
} 

$(document).ready(function() { 
    $(".columnDropdown").autocomplete("", { 
     width: 320, 
     max: 14, 
     highlight: false, 
     minChars: 0, 
     scroll: true, 
     scrollHeight: 300 
    }); 

    $("#Data").change(function() { 
     $.ajax({ 
      url: "/Home/ColumnNamesForDataSelect", 
      type: "GET", 
      data: { DataSelectID: parseInt($('#Data').val()) }, 
      success: PopulateColumnsList 
     }); 
    }); 

}); 

은 반환이 응답을 얻을 :

[ "메모", "밸런스"]

Butmy 자동 완성이 아니라 하나의 문자로 이들 각각 표시됩니다 메모, 균형. 예제 코드가 결과를 반환하는 비슷한 방법을 보여주기 때문에 이것이 정확하다고 생각했습니다.

아이디어가 있으십니까?

미리 감사드립니다.

답변

1

? 나는 백퍼센트를 따르고 있지 않다.

내 자동 완성 기능은 사용자가 텍스트 상자에 입력을 시작이며에 입력되는 문자를 살펴보고 그 결과를 가능한 단어를 반환합니다.

내가 그 일을하고 방법은 이것이다 :

// JavaScript file 
$("#id").autocomplete("AutoFill", { delay: 1 }); 


// view 
public ContentResult AutoFill(string q) 
{ 
    var result = // go to database and grab all words that Start with whatever is in q. 

    string sendBack = null; 
    for (int i = 0; i < result.Count; i++) 
    { 
     sendBack += result[i] + Environment.NewLine; 
    } 
    return Content(sendBack); 
} 

이 전혀 당신을 도움이되는지 확실하지.

0

글쎄, 당신은 편지로 편지 될 것이다 onchange를() 이벤트에 바인딩된다. 나는 비슷한 것을 쳐다 보면서 전체 가치를 원했습니다. parse() 함수를 재정의하고 XML 파서/형식을 지정하여이 문제를 처리 한 다음 result() 함수를 오버라이드하여 parse() 함수에서 다시 설정 한 행 [] 데이터를 구문 분석했습니다.

How do you use POST with jQuery Autocompleter?

그래서 기본적으로, 나는 항상 행 [] 선택의 데이터와 이름 (U 너무 JSON을 할 수있는)이있다.

, 당신은 또한 당신의 새 행 [] 배열을 처리 할 수있는 formatItem() 함수를 재정의해야합니다. 당신은 당신이 원하는의 예를 보여주기 위해 가능한

+0

변경되는 DropDownBox입니다. – Damien

1

나는 이것이 미친 이야기일지도 모르고 대답도 많지 않다는 것을 알았지 만 응답의 각 아래 첨자에있는 항목을 반복하는 것으로 보이므로 [["Memo","Balance"]]과 같은 다른 배열로 답장을 시도 했습니까?

+0

이것은 지금 전체 결과를 표시합니다. Bizaarre! – Damien