TemplateCellRenderer
HTML 형식의 템플릿을 표시하는 렌더러
Signature:
export interface TemplateCellRenderer extends CellRenderer
Extends: CellRenderer
Remarks
CellRenderer 를 상속한다.
템플릿 설정 시 중괄호 안에 있는 형식에 따라 다르게 해석된다.
{value}
: 데이터 값
{value: fieldName}
: 필드명에 해당하는 데이터 값
나머지: 필드명으로 간주 될 변수명
[상위 클래스]
Example
let column.renderer = {
type:"html",
template: "<img src='images/realgrid-logo.png' height='20'/><span>${value}-${value:unitprice}-</span><span style='color: red;font-weight: bold;'>${xxx}</span>",
valueCallback: function (grid, model, field) {
if (field == "xxx") {
return "1234";
}
}
Events
Property | Type | Description |
---|---|---|
callback | GetTemplateCallback | 렌더링 시 표시할 html을 만들기 위한 콜백 |
valueCallback | RealizeValueCallback | template에 ${xxx} 형태로 감싸진 값을 실제 값으로 치환하기 위한 콜백 |
Properties
Property | Type | Description |
---|---|---|
inputFocusable | boolean | renderer에 input element가 있을때 focus를 가질수 있는지 여부 |
template | string | 입력되는 html 템플릿 형태의 문자열 |
templateEvents | TemplateEvent | TemplateEvent[] | element의 event를 지정한다. |
type | 'html' | 종류: html 템플릿 |
Events Desc
callback
렌더링 시 표시할 html을 만들기 위한 콜백
Type
- GetTemplateCallback
Remarks:
화면에 표시되어야 할 내용이 값에 따라 변경되는 경우 표시되는 html을 만들기 위해 사용한다.
Example:
column.renderer = {
type:"html",
callback: function (grid, model, width, height) {
const value = model.value;
if (value === 'xxx') {
return "<img src='images/realgrid-logo.png' height='" + height / 2 + "'></img>" + "<div>" + model.value + "</div>";
} else {
return "<div>" + model.value + "</div>"
}
}
}
valueCallback
template에 ${xxx}
형태로 감싸진 값을 실제 값으로 치환하기 위한 콜백
Type
- RealizeValueCallback
Remarks:
셀의 값에 따라 template를 변경하는 경우 ${xxx}
형태로 template에 지정하면 rendering시 valueCallback을 호출하고 return된 문자열로 ${xxx}
을 대체한다.
Example:
column.renderer = {
type:"html",
template: "<img src='images/realgrid-logo.png' height='20'/><span>${value}-${value:unitprice}-</span><span style='color: red;font-weight: bold;'>${xxx}</span>",
valueCallback: function (grid, model, field) {
if (field == "xxx") {
return "1234";
}
}
}
Properties Desc
inputFocusable
renderer에 input element가 있을때 focus를 가질수 있는지 여부
Type
- boolean
Remarks:
true
로 지정하면 input element가 focus를 가질수 있다. false
이면 input element를 클릭해도 그리드가 focus를 가져간다. 그리드의 editor가 아닌 사용자의 input이 focus를 가지는 경우 키보드를 이용한 이동/Tab/편집은 사용자가 관리해야 한다.
template
입력되는 html 템플릿 형태의 문자열
Type
- string
Remarks:
callback
이 지정되지 않으면 사용한다.
templateEvents
element의 event를 지정한다.
Type
- TemplateEvent | TemplateEvent[]
Remarks:
Example:
const htmlRenderer = {
type: "html",
template: `<input type='button' value='click' data-itemindex=\${itemindex}></input>`,
templateEvents: {
selector: 'input[type="button"]',
event: {
onclick: function(e) {console.log(e)}
}
}
}
type
종류: html 템플릿
Type
- 'html'