2012-10-18 3 views
0

안녕하세요, 검색 기준에 따라 입력란에 텍스트가 채워져 있습니다. 예를 들어 입력란에 a로 시작하는 항목이 텍스트 상자에 채워져 있고 다른 텍스트 상자에서 partyname을 표시했지만 문제가있는 경우 그 때 항목 텍스트 상자에 값을 선택하면 텍스트 상자에 표시되지 않지만 partyname 텍스트 상자가 작동합니다 즉 내가 숨겨진 필드와 텍스트 상자에 표시되는 드롭 다운에서 partyname을 선택하지만 그것은 내 jquery 함수를 보내는 인스턴트 메신저 작동하지 않습니다 그래서jquery-autocomplete-multiple-output

public class Iteminfo 
{ 
    connection oConnection = new connection(); 
    Control oControl = new Control(); 
    AccountInfo oAccount = new AccountInfo(); 
    connection c = new connection(); 

    public string Title { get; set; } 
    public string Name { get; set; } 
    public string value { get; set; } 

    public List<Iteminfo> GetItems(string prefixText) 
    { 
     List<Iteminfo> itemList = new List<Iteminfo>(); 

     try 
     { 
      DataTable dt; 
      AccountInfo oAccount = new AccountInfo(); 
      //dt = oAccount.GetAccountInfo((int)HttpContext.Current.Session["CompCode"], 0); 
      dt = oAccount.GetIteminfo(prefixText); 
      if (dt.Rows.Count > 0) 
      { 
       for (int i = 0; i < dt.Rows.Count; i++) 
       { 
        itemList.Add(new Iteminfo() { Name = dt.Rows[i]["groupname"].ToString() + dt.Rows[i]["subgroup"].ToString() + dt.Rows[i]["itemname"], Title = dt.Rows[i]["itemname"].ToString(), 
        value = dt.Rows[i]["groupname"].ToString() + dt.Rows[i]["subgroup"].ToString() + dt.Rows[i]["itemname"].ToString()+";"+dt.Rows[i]["itemcode"].ToString() }); 
       } 
      } 
     } 
     catch (SqlException) 
     { 
      itemList.Add(new Iteminfo() { Name = "Problem Getting Results.", value = "Error" }); 
     } 

     if (itemList.Count == 0) 
      itemList.Add(new Iteminfo() { Name = "Nothing to Display.", value = "Info" }); 

     return itemList; 
    } 
} 
:

$(document).ready(function() { 
    SearchText(); 
    SearchItem(); 
}); 

function SearchText() { 
    $('input[name$="tbAuto"]').autocomplete({ 
     source: function(request, response) { 
      $.ajax({ 
       url: "PartyList.asmx/FetchPartyList", 
       data: "{ 'prefix': '" + request.term + "' }", 
       dataType: "json", 
       type: "POST", 
       contentType: "application/json; charset=utf-8", 
       success: function(data) { 
        response(data.d); 
       }, 
       error: function(XMLHttpRequest, textStatus, errorThrown) { 
        alert(textStatus); 
       } 
      }); 
     }, 
     minLength: 1, 
     focus: function(event, ui) { 
      $('input[name$="tbAuto"]').val(ui.item.Name); 
      return false; 
     }, 
     select: function(event, ui) { 
      $('input[name$="tbAuto"]').val(ui.item.Name); 
      $('input[name$="tbHidden"]').val(ui.item.value); 
      return false; 
     } 
    }).data('autocomplete')._renderItem = function(ul, item) { 
     return $('<li>').data('item.autocomplete', item).append('<a>' + item.Name + '</a>').appendTo(ul); 
    }; 
} 


function SearchItem() { 
    $('input[name$="txtitem"]').autocomplete({ 
     source: function(request, response) { 
      $.ajax({ 
       url: "Itemslist.asmx/FetchItemList", 
       data: "{ 'prefix': '" + request.term + "' }", 
       dataType: "json", 
       type: "POST", 
       contentType: "application/json; charset=utf-8", 
       success: function(data) { 
        response(data.d); 
       }, 
       error: function(XMLHttpRequest, textStatus, errorThrown) { 
        alert(textStatus); 
       } 
      }); 
     }, 
     minLength: 1, 
     focus: function(event, ui) { 
      $('input[name$="txtitem"]').val(ui.item1.Name); 
      return false; 
     }, 
     select: function(event, ui) { 
      $('input[name$="txtitem"]').val(ui.item1.Name); 
      $('input[name$="hditem"]').val(ui.item1.value); 
      return false; 
     } 
    }).data('autocomplete')._renderItem = function(ul, item1) { 
     return $('<li>').data('item1.autocomplete', item1).append('<a>' + item1.Name + '</a>').appendTo(ul); 
    }; 
} 

ItemInfo 클래스를 도와주세요

페이지 방법 :

[WebMethod] 
public List<Iteminfo> FetchItemList(string prefix) 
{ 
    var items = new Iteminfo(); 
    var fetchitems = items.GetItems(prefix); 
    //.Where(m => m.Name.ToLower().StartsWith(prefix.ToLower())); 

    // .Where(m => m.Name.ToLower().StartsWith(prefix.ToLower())); 
    return fetchitems.ToList(); 
} 
+0

HTML/ASPX 코드도 제공하고 문제 설명을 좀 더 명확하게 표시 할 수 있습니까? – tpeczek

+0

select 이벤트가 두 번째 텍스트 상자 UI 요소 – iProgrammer

+0

을 생성하지 않는 이유도 그 답이 도움이 되었습니까? 여전히 문제가 있습니까? – tpeczek

답변

0

첫 번째 문제는 SearchItem 기능 것 같다. itemitem1으로 변경하면 안됩니다. 이는 내부 jQuery UI 이름이며 항상 동일합니다 (모든 인스턴스에 대해).

function SearchItem() { 
    $('input[name$="txtitem"]').autocomplete({ 
     source: function(request, response) { 
      $.ajax({ 
       url: "Itemslist.asmx/FetchItemList", 
       data: "{ 'prefix': '" + request.term + "' }", 
       dataType: "json", 
       type: "POST", 
       contentType: "application/json; charset=utf-8", 
       success: function(data) { 
        response(data.d); 
       }, 
       error: function(XMLHttpRequest, textStatus, errorThrown) { 
        alert(textStatus); 
       } 
      }); 
     }, 
     minLength: 1, 
     focus: function(event, ui) { 
      $('input[name$="txtitem"]').val(ui.item.Name); 
      return false; 
     }, 
     select: function(event, ui) { 
      $('input[name$="txtitem"]').val(ui.item.Name); 
      $('input[name$="hditem"]').val(ui.item.value); 
      return false; 
     } 
    }).data('autocomplete')._renderItem = function(ul, item) { 
     return $('<li>').data('item.autocomplete', item).append('<a>' + item.Name + '</a>').appendTo(ul); 
    }; 
} 

선택기에 대한 몇 가지 추가 오류가있을 수 있습니다 그러나 이것은 HTML/ASPX 코드없이 이야기하는 것은 불가능 : 그래서 자바 스크립트 기능은 다음과 같아야합니다.