2016-08-10 4 views
0

인라인 편집 옵션이있는 jqGrid를 사용하고 있습니다. 셀에 값이없는 경우 편집 아이콘을 표시하려고합니다. 내가 초기 값 you can edit this, 그것은 입력 상자가 올바르게 표시됩니다에 그러나 입력 상자를 클릭하면jqGrid는 라인 편집에서 '편집'아이콘을 표시합니다.

function aFormatter(cellvalue, options, row) { 
     if(cellvalue == null){   
       return 'you can edit this'; 
     }else{ 
      return cellvalue; 
     } 
} 

you can edit this 텍스트가 표시됩니다 :

그래서 나는 포매터를 쓰기?

내가 그것을 어떻게 를 해결할 수 있습니까? 이 표에서 "이 편집 할 수 있습니다"대신에 "편집"아이콘이 표시됩니다

답변

2

포맷터와 함께 unformatter (unformat)를 정의해야한다고 생각합니다. 예를 들어,

formatter: function (cellvalue) { 
    if (cellvalue == null) {   
     return "<span class='ui-icon ui-icon-pencil'></span>"; 
    } else { 
     return cellvalue; 
    }; 
}, 
unformat: function (cellValue, options, elem) { 
    return $(elem).text(); 
} 

나는 당신이 struts2 그리드 플러그인에 unformat을 지정할 수있는 방법을 모르겠어요.

또 하나의 방법은 다음과 같은 방식으로 포맷을 정의하는 것입니다 그것은 당신이 standard formatters"integer", "date" 등을 사용할 수 있습니다처럼 같은 방법으로 formatter: "yourFormatterName" (또는 struts2에서 아마 formatter = "yourFormatterName")를 사용할 수 있도록합니다

(function ($) { 
    "use strict"; 
    /*jslint unparam: true */ 
    $.extend($.fn.fmatter, { 
     yourFormatterName: function (cellValue, options) { 
      if (cellvalue == null) {   
       return "<span class='ui-icon ui-icon-pencil'></span>"; 
      } else { 
       return cellvalue; 
      }; 
     } 
    }); 

    $.extend($.fn.fmatter.yourFormatterName, { 
     unformat: function (cellValue, options, elem) { 
      return $(elem).text(); 
     } 
    }); 
}(jQuery)); 

.

+0

감사합니다. 언급 한대로 스트럿은 언폼 도구 확장 기능. 그러나 나는'$ .fn.fmatter is undefined'를 얻는다. 그것을 고칠 방법을 알려주시겠습니까? –

+0

@AlirezaFattahi : ** jqGrid 뒤에 코드 **를 포함해야합니다 ('jquery.jqgrid.min.js' 다음에). '$ .fn.fmatter'을 정의한 jqGrid 코드의 [the line] (https://github.com/free-jqgrid/jqGrid/blob/v4.7.0/js/jquery.fmatter.js#L50)을 보라. – Oleg

+0

당신은 맞지만 jrGrid를 사용하여 struts 플러그인을 사용할 때 코드를 어디에 넣을 수 있는지 찾을 수 없습니다. 나는 새로운 질문에 그것을 시도하려고하는 전문가가 나를 도울 수있는 힘이 될 수 있습니다. 감사! –

1

있는 jqGrid 버전에 구축이다 내가 struts 2 jquery tags plugin 통해있는 jqGrid를 사용하고


,

function aFormatter(cellvalue, options, row) { 
    if(cellvalue == null) {   
     return '<span class="ui-icon ui-icon-pencil"></span>' 
    } else { 
     return cellvalue; 
    } 
} 
+0

같은 문제 ... 입력 연필에 ''이 표시됩니다. –