2009-11-17 5 views
4

여기에 내 현재 뷰 코드입니다 :MVCContrib, Html.Grid : td 태그에 행 기반 ID를 첨부하려면 어떻게해야합니까?

<% Html.Grid((List<ColumnDefinition>)ViewData["Parameters"]) 
    .Columns(column => 
     { 
      column.For(c => c.ID); 
      column.For(c => c.Name); 
     }).Render(); 
%> 

내가 같은 각각의 "이름"TD 태그에 HTML "ID"속성을 연결하고 싶습니다 :

<table class="grid"> 
    <thead> 
    <tr> 
     <th>Id</th> 
     <th>Name</th> 
    </tr> 
    </thead> 
    <tbody> 
    <tr class="gridrow"> 
     <td>1</td> 
     <td id="parameter_1">Address</td> 
    </tr> 
    <tr class="gridrow_alternate"> 
     <td>2</td> 
     <td id="parameter_2">Phone Number</td> 
    </tr> 
    </tbody> 
</table> 

내 질문 :

어떻게해야합니까?

나는 '속성'확장 방법을 고려했지만 어떻게 작동 시킬지 확신하지 못했습니다. 지정된 HTML를 렌더링하는

답변

1

아마도 가장 좋은 방법은 완전히 MVCContrib HTML.Grid을 포기하고 단지의 foreach와 마크 업을 렌더링하는 것입니다.

+1

Jim, 나는 실제로 그것을 얻었고 편집 된 대답을 확인했다. –

+0

@Josh Pearce : 아직 답을 얻을 수 없습니다. 제 3 자의 의견이 있으면 좋을 것입니다. –

3
column.For(c => c.ID).Attributes(c=> new Dictionary<string, object>(){{"id", c.ID}}); 
+0

-1 : 그런 식의 람다 사이에 매개 변수를 공유 할 수 없습니다. –

+0

편집 : 틀렸어, ID 속성을 수행하는 방법이있다. 수업을하는 방법을 보여주기 위해 수업에 던졌다. 원래의 나쁜 정보를 유감스럽게 생각합니다. –

+0

@ Josh Pearce : 'Attributes()'안에 'c.ID'를 넣고 'For()'안에 'c'를 참조 할 수 없습니다. –

4

구문이 다소 이상하지만, 이됩니다. 조쉬의 대답은 올바른 방향입니다. 내 대답은 현재 프로젝트의 라인을 사용하는 것입니다. 당신이 원하는대로

col.For(ts => ts.Subtitle.Abbreviation) 
    .Named("Subtitle<br />Language") 
    .Attributes(x => new Dictionary<string, object>() 
    {           // { "name", "value" }; results in: 
     { "title", x.Item.Subtitle.Text }, // title="someLanguage" 
     { "class", "someCssClass" },   // class="someCssClass" 
     { "id", "someIdOrOther' }    // id="someIdOrOther" 
    }); 

당신은 많은 이름 - 값 쌍을 포함 할 수 있습니다 :이 구문은 하나 개 이상의 속성을 사용하는 것이 포함되어 있습니다. 위의 예제에서 람다 변수 (x)의 .Item 속성에 대한 액세스 권한이 각 행의 객체에서 데이터를 사용해야하는 경우에 대비하여 각 객체는 액세스 할 수 있습니다.

관련 문제