2017-01-06 2 views
0

다음 코드를 사용하여 서버의 데이터를 검도 그리드에 표시하고 있습니다.Kendo Grid 단일 열의 여러 하이퍼 링크

정상적으로 작동합니다.

각 행의 마지막 셀에 두 개의 하이퍼 링크를 넣고 싶지만 하나만 사용할 수 있습니다.

동일한 셀에 EDITDELETE 링크가 필요합니다.

어떻게하면됩니까?

CODE

@(Html.Kendo().Grid(Model) 
.Name("Grid") 
.Columns(columns => 
{ 
    columns.Bound(u => u.USERNAME); 
    columns.Bound(u => u.PASSWORD); 
    columns.Bound(u => u.ROLE); 
    columns.Bound(u => u.STATUS); 
    columns.Template(c => Html.ActionLink("Edit", "Edit", new { id = c.ID })); 

} 
) 
.Pageable() 

)

답변

2

는이 작업을 수행하는 몇 가지 방법이 있습니다.

는 먼저과 같이 그리드 설정

내에서 옵션을 삭제/붙박이 편집을 사용할 수

columns.Command(command => 
       { 
        command.Edit(); 
        command.Destroy();       
       }); 

그럼 그냥 편집 설정을 연결할 적절 delete 명령을 파괴한다.

은 다른 방법은 두 가지 방법 중 하나를 사용하여 이러한을 템플릿 수

먼저 인라인 템플릿

:

columns.Bound(c => c.ID).ClientTemplate("<a href='Edit/#=data.ID#'>Edit Link #=data.ID#</a> 
<a href='Delete/#=data.ID#'>Delete Link #=data.ID#</a>") 
그래서 이것은 단지 컬럼에 바인딩

및 템플릿 표준을 사용하여 요구 사항에 따라 추가 HTML 및 자바 스크립트 필요한 경우. 이것은 간단한 것들에 대한 괜찮습니다하지만 당신은 다음 두 번째 방법 템플릿을 생성하고이 같은 것을 전화로 연결 더 복잡한 templates 경우 빠른 아주 못생긴 얻을 수 있습니다 :

columns.Bound(c => c.ID).ClientTemplate("#=getButtonTemplate(data,'buttonsTemplate')#") 

다음과 같이 템플릿을 만듭니다

<script id="buttonsTemplate" type="text/x-kendo-template"> 
<div class='btn-group'> 
<a class="btn btn-primary" href='@Url.Action("{edit action}", "controller")/#=ID#'>Edit Link #=ID#</a> 
<a class="btn btn-danger" href='@Url.Action("{delete action}", "controller")/#=ID#'>Delete Link #=ID#</a> 
<div> 

</script> 

다음 getButtonTemplate 기능 :

function getButtonTemplate(data, templateName) { 
    var templateObj = $("#" + templateName).html(); 
    var template = kendo.template(templateObj); 
    return template(data); 
} 

그래서 내가이 두 번째 방법으로 여기에 무슨 일이 일어나고 있는지 설명 할 수 있습니다.

열에 html을 템플릿으로 작성하는 대신 더 나은 단어가 필요하다는 이유로 components 두 개로 추출합니다.

우리는 getButtonTemplate 함수를 사용하여 데이터 항목과 템플릿의 id에 2 개의 매개 변수를 전달합니다. 이 함수는 단순히 전달 된 데이터 객체를 템플릿에로드하고 검도 마술은 HTML을 렌더링하고 필요에 따라 값을 주입합니다. 이 주제에 대한 자세한 정보는 검도 데모 사이트를 확인하십시오.

템플릿 요소는 HTML과 자바 스크립트가 섞여있을 수 있으므로 템플릿에 논리를 적용해야한다면 여기에서 수행 할 수 있습니다. 다시이 주제에 대한 자세한 정보는 검도 사이트를 참조하십시오.

불량 해시 또는 대괄호가 코드를 변경하지 않고도 관리하고 변경하기가 더 쉽기 때문에 개인적으로이 클라이언트 템플릿을 만드는 두 번째 방법을 선호합니다.

추가 정보가 필요하면 알려주세요. 답변을 업데이트 해 드리겠습니다.