2011-10-06 4 views
0

mvc3 면도기에 삽입하기 위해 telerik 격자에 사용되는 차량 부품에 대한 사용자 정의 편집기 템플리트가 있습니다. 편집기 템플릿에는 datetime 필드가 포함되어 있습니다. 새 차량 부품을 삽입하면 datetime 필드가 잘못되어 형식이 변경됩니다.사용자 정의 그리드 편집기 템플리트의 telerik datetime 형식이 컨트롤러에 올바르게 전달되지 않았습니다.

예를 들어, 6 일, 10 월 및 2011 년 인 "06/10/2011"을 컨트롤러에 삽입하면 모델의 dateTime 필드는 "10/06/2011"즉 10 일입니다 달 6 년 (211) 나는 기본적으로 월과 일이 컨트롤러에 제출 한 후 전환되고있다 telerik의 날짜 선택

을 사용하고

내가없이 날짜 필드를 통과하고 내 코드의 다른 인스턴스가 문제는, 그래서 내가 문제는 내가 사용자 정의 편집기 템플릿을 사용하고 있다는 사실이라고 생각합니다 ...

@(Html.Telerik().Grid<VehiclePartsViewModel>() 
    .Name("VehiclePartsViewModel") 
    .ToolBar(commands => 
    { commands.Insert(); 
    }) 
    .DataKeys(keys => keys.Add(c => c.Id)) 
    .ClientEvents(events => events.OnRowDataBound("onRowDataBound")) 
    .DataBinding(dataBinding => dataBinding 
     .Ajax() 
      .Insert(MVC.Vehicles.CustomCoverage._InsertPart().GetRouteValueDictionary()) 
      .Select(MVC.Vehicles.CustomCoverage._SelectPart().GetRouteValueDictionary()) 
      .Update(MVC.Vehicles.CustomCoverage._SavePart().GetRouteValueDictionary()) 
      .Delete(MVC.Vehicles.CustomCoverage._DeletePart().GetRouteValueDictionary()) 
     ) 
    .Columns(columns => 
    { 
     omitted.. 
    }) 
    .Footer(false) 
    .Editable(editing => editing.Mode(GridEditMode.PopUp)) 

단순화 편집기 템플릿은 다음과 같습니다 :다음은 그리드에 대한 코드 나는 또한 DateTime의 편집기 템플릿을 사용하고

<div> 
    @Html.LabelFor(v => v.ItemId, new { @class = "uc-caption"}) &nbsp; 
    @Html.EditorFor(v => v.ItemId) 
</div><br /> 
<div> 
    @Html.LabelFor(v => v.InstallDate, new { @class = "uc-caption"}) &nbsp; 
    @Html.EditorFor(v => v.InstallDate, new { Modifiable = true }) 
</div> 

,하지만 문제가 여기에있다 생각하지 않는다 :

@( 
    Html.Telerik().DatePicker() 
    .Name(ViewData.TemplateInfo.GetFullHtmlFieldName(string.Empty)) 
    .HtmlAttributes(new { id = ViewData.TemplateInfo.GetFullHtmlFieldName(string.Empty) + "_wrapper" }) 
    .ShowButton(true) 
    .Value(Model.HasValue ? Model.Value : new DateTime()) 
    .ClientEvents(events => events.OnChange("onChangeDatePicker")) 
    .InputHtmlAttributes(new { style = "width:100%"}) 
    .Enable(ViewData["Modifiable"] != null ? (bool)ViewData["Modifiable"] : true) 

)

감사

,

답변

2

을 :

나는 부동 소수점 값을 게시 할 때 같은 문제가 있고, Global.asax.cs이 방법을 추가하여 해결 참으로 세계화를 설정에 문제가 될 .. 당신은 .. ..이 내 _layout.cshtml 지금 모습입니다 그 전에 답변

@(Html.Telerik().ScriptRegistrar() 
     .OnDocumentReady(@<text></text>) //Telerik: This is required because there is still no Telerik components on the page and jQuery(document).ready will not be rendered and the globalization will not work 
     .Globalization(true)  
1

아마도 앱의 세계화/현지화에 문제가있을 것입니다. 다른 문화가 섞여 있습니다. 것 같다 .. 그래서 마침내 telerik와 함께이 문제를 해결 할 수 있었다 확인

protected void Application_AcquireRequestState(object sender, EventArgs e) 
{ 
     System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("en"); 
     System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("en"); 
} 
+0

감사 한 줄을 추가해야합니다, 나는 실제로 그러나 didnt가 시도 어떤 성공을 거두어도 CurrentUICulture를 어떻게 설정했는지 상관없이 어떤 시점에서 재설정됩니다. 다시 미국으로. 이 문제는 뷰 내의 부분 뷰와 그리드가 부분 뷰에있을 때만 발생합니다. 부분 뷰는 삽입시 편집기 템플리트를 사용합니다. 아주 이상한 문제, 여전히 telerik의 도움을 받고 ... – Amith

관련 문제