jqGrid를 사용하여 데이터 편집을 위한 드롭다운 메뉴를 동적으로 채우는 경우 추가 "정의되지 않은" 항목이 드롭다운 메뉴에 나타납니다. 이 문제는 드롭다운 메뉴 값을 채우는 데 사용되는 문자열 형식으로 인해 발생합니다.
jqGrid에서는 드롭다운 메뉴 값 형식이 다음과 같아야 합니다.
<code>value: "FE:FedEx; IN:InTime; TN:TNT"</code>
그러나 ASP.NET MVC 작업의 코드는 값 주위에 불필요한 따옴표를 추가하는 sb.ToString()을 사용하여 문자열을 생성합니다.
<code>value: ""ID: One;ID: Two;ID: Three;ID: Four;ID: Five;""</code>
방법 1: dataUrl 사용
이 문제를 해결하려면 jqGrid에서 editoptions 또는 searchoptions의 dataUrl 속성을 사용하는 것이 좋습니다. 이를 통해 원하는 형식으로 결과를 반환하는 URL을 지정할 수 있습니다.
<code>{ name: 'destinations', ditable: true, edittype:'select', editoptions: { dataUrl:'<%= Url.Action("GetDestinationList","Home") %>' } }</code>
컨트롤러에서 GetDestinationList 작업은 드롭다운 메뉴 값이 포함된 JSON 배열을 반환해야 합니다.
<code>public JsonResult GetDestinationList() { List<string> allDestinations = GetAllDestinations(); Json(allDestinations, JsonRequestBehavior.AllowGet); }</code>
방법 2: buildSelect 기능 사용
dataUrl을 사용할 수 없는 경우 buildSelect 함수를 사용하여 드롭다운 메뉴 값의 형식을 지정할 수 있습니다.
<code class="language-javascript"> buildSelect: function(data) { var s = ''; if (response && response.length) { for (var i = 0, l=response.length; i<l ; i++) { var ri = response[i]; s += ''+ri+''; } } return s + ""; }</code>
서버로부터 응답 데이터를 받아 필요한 형식으로 문자열을 반환하는 함수입니다.
위 내용은 내 ASP.NET MVC $.post 요청이 jqGrid 드롭다운에 대해 예기치 않은 형식의 문자열을 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!