[JQUERY] 문자열을 반환하는 ASP.NET MVC $ .post 호출 ...있는 jqGrid에 대한 형식 도움이 필요
JQUERY문자열을 반환하는 ASP.NET MVC $ .post 호출 ...있는 jqGrid에 대한 형식 도움이 필요
해결법
-
1.당신이있는 jqGrid에 대한 문제를 해결하기 위해 시도 할 경우에만 다른 방법을 선택할 수 있습니다.
당신이있는 jqGrid에 대한 문제를 해결하기 위해 시도 할 경우에만 다른 방법을 선택할 수 있습니다.
당신은 editoptions 또는 SearchOptions는 검색의 dataUrl 및 buildSelect 속성 대신 값 속성을 사용할 수 있습니다. 이 기능은 AJAX의 사용을 위해 특별히 소개합니다. dataUrl의 정의하는 양식과 같은 결과를 제공하는 URL
<select><option value="1">One</option> <option value="2">Two</option></select>
당신이 당신의 사용자 정의 기능 buildSelect 도움이 될 서버에서 JSON 결과를 반환하는 easer이기합니다. 매개 변수로 ... 옵션> 선택> <옵션>는 서버에서 데이터 전송을 수신하고이 문자열이 <선택> 반환해야합니다. 길에서 당신은 더 나은 결과를 얻을 것입니다.
당신이 당신의 옛날 방식에 숙박하기로 결정하는 경우 적어도 다음 코드를 수정해야
foreach (var q in query) { if (sb.Length != 0) sb.Append(';'); sb.Append(q.Destination); // instead of sb.Append("ID"); sb.Append(':'); sb.Append(q.Destination); }
하는 대신 "페덱스 : 페덱스; :; 인 타임 인 타임 TNT TNT" "; ID 페덱스 : ID 인 타임, ID : TNT를;".
업데이트 : 당신은 작은 예를 들어 물었다. 당신은 예를 들어 목록 <문자열>와 같은 목적지 문자열의 모든 다른 값을 얻을 수 있습니다 우리를하자이 방법의 이름은 GetAllDestinations입니다. 그런 다음 dataUrl에서 사용하는 액션처럼 볼 수
public JsonResult GetDestinationList() { List<string> allDestinations = GetAllDestinations(); Json(allDestinations, JsonRequestBehavior.AllowGet); }
당신이 다음에 대해 정의 할 수있는 jqGrid의 editoptions 또는 SearchOptions는 검색의 액션 내부를 사용하려면
{ name: 'destinations', ditable: true, edittype:'select', editoptions: { dataUrl:'<%= Url.Action("GetDestinationList","Home") %>', buildSelect: function(data) { var response = jQuery.parseJSON(data.responseText); var s = '<select>'; if (response && response.length) { for (var i = 0, l=response.length; i<l ; i++) { var ri = response[i]; s += '<option value="'+ri+'">'+ri+'</option>'; } } return s + "</select>"; } } }
당신은 HTTP GET 당신이 JSON (allDestinations)를 사용할 수 있습니다 당 사용되는 행동을하지 않을 경우; 대신 JSON의 (allDestinations, JsonRequestBehavior.AllowGet); GetDestinationList 행동하지만,있는 jqGrid 옵션 추가 옵션 목록에 추가
ajaxSelectOptions: { type: "POST" }
2 업데이트 : 답은 이미 오래되었습니다. 중간에 buildSelect가 호출됩니다있는 jqGrid의 코드가 변경되었습니다. (포스트 및 예를 들어 게시물을 참조)하기 전에 지금 buildSelect이 jQuery.ajax의 성공 핸들러 내부에 사용됩니다 대신 전체 핸들러의 (여기 참조). 있는 jqGrid 라인의 현재 버전에 따라서
var response = jQuery.parseJSON(data.responseText);
필요하지 않습니다. 데이터는 일반적으로 데이터 JSON 그래서 라인들 파싱
buildSelect: function(data) { var response = jQuery.parseJSON(data.responseText);
코드에서 위에서 교체 할 수 있습니다
buildSelect: function(response) {
-
2.이것은 또 다른 대안이다
이것은 또 다른 대안이다
[컨트롤러 방법]
[HttpGet] public ActionResult SchoolList() { //Get Schools var qry = SchoolManager.GetAll(); //Convert to Dictionary var ls = qry.ToDictionary(q => q.SchoolId, q => q.Name); //Return Partial View return PartialView("_Select", ls); }
[_Select 부분보기]
@model Dictionary<int, string> <select> <option value="-1">--select--</option> @foreach(var val in Model) { <option value="@val.Key.ToString()">@val.Value</option> }
[있는 jqGrid로 페이지]
{ name: 'SchoolId', index: 'SchoolId', align: 'left', editable: true, edittype: 'select', editoptions: { dataUrl: '@Url.Action("SchoolList")' }, editrules: { required: true} },
이 인터넷 검색의 사람이 시간을 절약 희망!
-
3.따옴표 문제는 내가 믿는 이런 식으로 고정되어
따옴표 문제는 내가 믿는 이런 식으로 고정되어
$.ajax({ type:"POST", url: '<%= Url.Action("GetDestinations", "Logger") %>', dataType: "json", async: false, success: function(data) { destinations = data.value; } });
이 값은 큰 따옴표없이 문자열로 평가합니다이 경우에 데이터는 JSON으로 변환되어, 작동합니다.
그 다음 작동하지 않으면 것은 다음과 같이 할 수있는 return 문을 변경 :
return "{ value : """+sb.ToString()+""" }";
야호 Linq에 (이 후행하지 것이다. 내가 문제라고 생각합니다)
(From q In query.AsEnumerable select "ID: "+q.Destination).join(";");
(I 테스트하지 않았다 오타가있을 수 있습니다)
from https://stackoverflow.com/questions/4101116/asp-net-mvc-post-call-returning-string-need-help-with-format-for-jqgrid by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] jQuery를는 .click - 패스 파라미터를 사용자 함수 (0) | 2020.10.11 |
---|---|
[JQUERY] 있는 jqGrid 필요 하이퍼 링크 - jQuery를 통해 캡처 값 필요 (0) | 2020.10.11 |
[JQUERY] 있는 jqGrid는 : 사용 안 함 형태의 경우 편집 필드 (0) | 2020.10.11 |
[JQUERY] 요소에 텍스트 문자열을 찾아 그 둘레에 약간의 범위 태그를 포장 (0) | 2020.10.11 |
[JQUERY] 패스 자바 스크립트 배열 -> PHP (0) | 2020.10.11 |