2012-04-27 3 views
0

데이터에 viewmodel을 사용하는 Telerik Grid가있는 ASP.NET MVC3보기가 있습니다.Telerik에 Telerik ComboBox 삽입 ASP.Net MVC3 Grid

요구 사항 중 하나는 조회 테이블에서 데이터를 가져 오는 표 열 중 하나에서 드롭 다운 컨트롤이 필요하다는 것입니다.

@model IEnumerable<MarketingWebsiteTools.Models.EditableItemInfo> 

드롭 다운 조회는 데이터와 함께 뷰 모델로 다시 매핑 할 필요가 valueswould 것을 :

는 MVC3에 비교적 새로운이기 때문에, 나는 면도기보기는 하나의 모델 지시자 IE를 사용할 수 있기 때문에 것을 생각 격자.

이 시점에서 내가 Html.Telerik를 사용하고 있음을 언급하는 적절한 수 있습니다()는 ClientTemplate에서 콤보()이 같은 :.

.Columns(columns => 
    { 
    columns.Bound(o => o.ItemNmbr).Width(65);//.ClientTemplate("<label name='ProductIdentifier' />"); 
    columns.Bound(o => o.Description).Width(65) 
       .ClientTemplate(Html.Telerik().ComboBox() 
       .Name("Special") 
       **.BindTo(new SelectList())** 
       .ToHtmlString()); 
    columns.Bound(o => o.Start_Date).Width(75).Format("{0:d}"); 
    columns.Bound(o => o.End_Date).Width(75).Format("{0:d}"); 
    columns.Bound(o => o.PromotionText).Width(75); 
    columns.Command(commands => commands.Delete()).Width(125).Title("Delete"); 
    }) 

내 질문은 다음 BindTo에 측면에서 (새로운 SelectList())를 사용하려면 System.Collections.Generic.IEnumerable 유형의 매개 변수를 제공해야하지만 내 viewmodel에서 가져 오는 방법을 확신 할 수 없거나 다른 방식으로 조회 데이터를 가져와야합니다. http://www.telerik.com/community/forums/aspnet-mvc/combobox/bindto.aspx

:

나는이 예제를 보았다 .BindTo (새 selectList의 (모델).) 나는 또한이 예를 바라 보았다

: How to insert drop down list box in a Telerik grid

보이는

그러나, 내 코드 또는 인텔리은 어떤 모델 즉 인식하지 않는 것 컨트롤러에 메서드 호출이 있지만 다시 컨트롤러에 액세스 할 수없는 것입니다.

미리 도움을 청하십시오.

더그

답변

0

당신은 템플릿를 사용하여 매우 쉽게 할 수 있습니다. 컨트롤러에서 바로 보기에 데이터를 전달하는 TempData 또는 ViewBag를 사용하여.

@{ 
    List<AdjustmentReasonCodes> salesAuditReasons = new List<AdjustmentReasonCodes>(); 
    salesAuditReasons = (List<AdjustmentReasonCodes>)TempData["SalesAuditReason"]; 
} 

column.Template(@<select id="@("ddlSalesAuditReason" + @item.CustCode.Replace(" ", "").Replace("-", "").Trim())" class="DropDown"> 
        <option value="0">--Select--</option> 
        @foreach (AdjustmentReasonCodes adrc in salesAuditReasons) 
        { 
         if (item.RefReasonForAuditAdjustment == adrc.ReasonCode) 
         { 
         <option value="@(adrc.ReasonCode)" selected="selected">@adrc.ReasonDescription</option> 
         } 
         else 
         {       
         <option value="@(adrc.ReasonCode)">@adrc.ReasonDescription</option> 
         } 
        } 
       </select>).Title("Audit Reason").Width(135);