"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 내 ASP.NET MVC JQGRID 드롭 다운이 왜 "정의되지 않은"값을 표시합니까?

내 ASP.NET MVC JQGRID 드롭 다운이 왜 "정의되지 않은"값을 표시합니까?

2025-03-23에 게시되었습니다
검색:775

Why Does My ASP.NET MVC jqGrid Dropdown Show an

asp.net mvc jqgrid 드롭 다운에서 "정의되지 않은"값을 해결

데이터 편집 중에 JQGRID 드롭 다운을 동적으로 채울 때 원치 않는 "정의되지 않은"값이 자주 나타납니다. 이는 JQGrid Expects와 데이터 전달 방법 사이의 데이터 구조 사이의 불일치에서 비롯됩니다.

정확한 JQGRID 데이터 형식 :

드롭 다운 값에 대한 이상적인 형식은 다음과 같습니다. 현재 방법의 문제 :

현재 접근법은 jQuery의 $.

StringBuilder

는 JQGRID의 형식과 일치하도록 검색된 데이터를 조작하지만 추가 "정의되지 않은"항목이 지속됩니다. 디버깅 결과 :

FireBug 디버깅은 sb.tostring () 가 소개 한 추가 인용문이 범인임을 나타냅니다. JQGrid는 자체 인용문을 추가하여 두 배의 인용문과 "정의되지 않은"문제로 이어집니다.

우수한 솔루션 : dataurl

buildSelect 속성을 직접 조작하는 대신

value

속성을 직접 조작하는 대신,보다 강력한 솔루션은 EditOptions 또는 searkoptions searkoptions 내에서 jqgrid의 dataurl 속성을 사용하는 것과 관련이 있습니다. 이들은 맞춤형 데이터 가져 오기 및 서식을 허용합니다. example

dataurl

action : public jsonresult getDestinationList () { List allDestinations = getAllDestinations (); Return JSON (AllDestinations, JSONREQUESTBEHAVIOR.ALKERGET); }

public JsonResult GetDestinationList() {
    List allDestinations = GetAllDestinations();
    return Json(allDestinations, JsonRequestBehavior.AllowGet);
}
buildSelect

함수 : buildSelect : function (data) { var s = ''; if (data && data.length) { for (var i = 0, l = data.length; i

buildSelect: function(data) {
    var s = '';
    if (data && data.length) {
        for (var i = 0, l = data.length; i 
editoptions

: { 이름 : '목적지', 편집 가능한 : 사실, edittype : 'select', editoptions : { DataUrl : '/yourcontroller/getDestinationList', // 컨트롤러 동작 경로로 교체하십시오 buildSelect : function (data) { // ... (위의 buildSelect 함수) ... } } }

{
    name: 'destinations',
    editable: true,
    edittype: 'select',
    editoptions: {
        dataUrl: '/YourController/GetDestinationList', // Replace with your controller action path
        buildSelect: function(data) {
            // ... (buildSelect function from above) ...
        }
    }
}

당신은

json (alldestinations);
  • jsonrequestbehavior.allowget 를 사용할 수 있지만 ajaxselectoptions : {type : "post"} 를 추가해야합니다.
  • .
  • 새로운 JQGRID 버전에서 buildSelect $. 이 개정 된 접근 방식은 JQGRID 드롭 다운을 관리하기위한 더 깨끗하고 효율적이며 덜 오류가 발생하기 쉬운 방법을 제공하여 "정의되지 않은"값 문제를 제거합니다. /yourcontroller/getDestinationList
  • 를 실제 컨트롤러 작업 경로로 바꾸는 것을 잊지 마십시오.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3