2014-02-18 2 views
0

일정을 표시하고 있으며 일정에서 현재 재생중인 항목을 강조하고 싶습니다. 동적 모델 바인딩을 사용하여 일정에있는 데이터가 반환됩니다. 나는 telerik 같은 것을 사용하지 않는다. 데이터는 단순히 div에 채워집니다. 어떤 도움을 주시면 감사하겠습니다. 컨트롤러를 통해 가능합니까?asp.net mvc에서 동적 모델의 결과 텍스트를 강조 표시하는 방법?

+0

질문에 대해 더 명확하게 설명해 주실 수 있습니까? 당신은 일정 목록을 가지고 있고 다른 스타일로 UI의 현재 일정을 강조하고 싶습니까? – ramiramilu

답변

0

이것 좀 봐 page. 나는 이것이 당신을 도울 것이라고 믿습니다. 기본적으로 모델을 그룹으로 설정 한 다음 자바 스크립트를 통해 활성 항목을 호출하고 찾고있는 강조 표시를 수행 할 수 있습니다.

0

내가 스케줄

여기에보기에 간단한 삼항 연산자를 사용하여 내 솔루션을 간다에서 항목을 재생 현재 강조하고 싶다.

public class ScheduleViewModel 
{ 
    public string Name { get; set; } 
    public DateTime ScheduleTime { get; set; } 
} 

그리고 아래 그림과 같이 컨트롤러의 동작이 일정 시간의 목록을 반환 -

는이 같은 간단한 모델이있는 경우라고 할 수 있습니다. 목록에 다른 날짜가 있음을 주목하십시오.

public ActionResult Index() 
    { 
     List<ScheduleViewModel> sch = new List<ScheduleViewModel>(); 
     sch.Add(new ScheduleViewModel() { Name = "Sch1", ScheduleTime = DateTime.Now.AddDays(-2) }); 
     sch.Add(new ScheduleViewModel() { Name = "Sch2", ScheduleTime = DateTime.Now }); 
     sch.Add(new ScheduleViewModel() { Name = "Sch3", ScheduleTime = DateTime.Now.AddDays(2) }); 
     return View(sch); 
    } 

다음보기에, 우리는 다음 코드를 가질 수 -

그래서 위의 코드에서 우리가 현재 날짜 일정에 특정 스타일을 충당하는 간단한 삼항 연산자를 사용하는
@model IEnumerable<MVC.Controllers.ScheduleViewModel> 

@{ 
    ViewBag.Title = "Index"; 
} 

<h2>Index</h2> 

<p> 
    @Html.ActionLink("Create New", "Create") 
</p> 
<table class="table"> 
    <tr> 
     <th> 
      @Html.DisplayNameFor(model => model.Name) 
     </th> 
     <th> 
      @Html.DisplayNameFor(model => model.ScheduleTime) 
     </th> 
     <th></th> 
    </tr> 

@foreach (var item in Model) { 
    <tr> 
     <td> 
      @Html.DisplayFor(modelItem => item.Name) 
     </td> 
     <td> 
      @Html.LabelFor(modelItem => item.ScheduleTime, item.ScheduleTime.ToString(), new { style=item.ScheduleTime.Date == DateTime.Now.Date ? "background:green;" : "background:red;" }) 
     </td> 
    </tr> 
} 

</table> 

. 디스플레이와 같은, 아래에서 확인하실 수 있습니다 -

@Html.LabelFor(modelItem => item.ScheduleTime, item.ScheduleTime.ToString(), new { style = item.ScheduleTime == DateTime.Parse("2/18/2014 10:00:00") ? "background:green;" : "background:red;" }) 

출력 다음 당신에게 줄 것입니다 - -

enter image description here

enter image description here

, 당신이 뭔가를 할 수 날짜 시간을 비교 한을 가지고

시간 만 비교하려면

@Html.LabelFor(modelItem => item.ScheduleTime, item.ScheduleTime.ToString(), new { style = item.ScheduleTime.ToString("HH:mm:ss") == new TimeSpan(10,0,0).ToString() ? "background:green;" : "background:red;" }) 

그러나 나는 단지 시간 비교가 필요하다고 생각하지 않는다. 위와 같이 날짜와 시간을 비교하여 요구 사항을 충족시켜야한다.

+0

하나의 날짜에 대해 여러 항목이 있고 그 중 현재 시간별로 항목을 강조 표시하려면 어떻게해야합니까? – Krish

+0

@ 낸시, 내 편집이 응답하도록 확인하십시오. – ramiramilu

관련 문제