2012-04-16 2 views
0

Я работаю с MVC3 и Entity FrameworkКак получить мой взгляд, чтобы выглядеть график

Я получил таблицу с:

ID - День недели - Мышцы - количество комплектов - Клиент

Это один стол ... Это простой проект.

Но моя проблема в том, что я не знаю, как получить правильный вид.

**Monday Tuesday Wednesday Thursday Friday Saturday Sunday** 
    Muscle Muscle  etc... 
    sets  sets 

То, что я думаю, что я должен сделать ... первым получаю список дней клиента (который он создал) хочет тренировку

Модель

fitnessday является свойством, которое связанно с моя база данных с datacontext.

так как

public class FitnessDay 
    { 
    public int id { get; set; } 
    public string dayoftheweek{ get; set; } 
    public string muscle{ get; set; } 
    public Nullable<int> sets{ get; set; } 
    public Nullable<int> customerId{ get; set; } 


    public virtual Customer Customers{ get; set; } 
    } 

    public class Customer 
    { 
    public Customer() 
    { 
     this.fitnessDay = new HashSet<fitnessDay>(); 
    } 

    // Primitive properties 

    public int id { get; set; } 
    public string name{ get; set; } 
    public string lastname{ get; set; } 

    // Navigation properties 

    public virtual ICollection<fitnessDay> fitnessDay { get; set; } 

} 

-

private IList<fitnessDay> trainingList= null; 

      public IList<fitnessDay> Training() 
     { 
      string nameOfCustomer= "bob"; 
      var Training1 = db.fitness.Where(c => c.Customer.name== nameOfCustomer); 

      trainingList= Training1.ToList(); 
      return trainingList; 

     } 

Контроллер

 public ViewResult TrainingView() 
    { 
     var list = model.training(); 

     return View(list); 
    } 

вид

Don't know how to show it here. 

Может кто-то помочь мне получить день недели и поместить правильные мышцы и установить под ним (там может быть несколько мышц в день)

изменения: новая информация добавлена ​​

+5

Плагин [jQuery Calendar плагин] (http://arshaw.com/fullcalendar/) идеально подойдет к счету. –

+0

@RobertHarvey - Этот календарь отличный! –

+0

Отлично. Я попробую, но я никогда раньше не работал с jquery. И это может усложнить ситуацию. edit: Я посмотрел на него, но моя таблица проста, у него нет временных меток - я просто хочу, чтобы соответствующие данные были ниже дня недели. – deltu100

ответ

0

Это было создано для отображения периодического стол, но это отличный кусок ui http://isotope.metafizzy.co/ Это требует значительного количества знаний jquery, но, опять же, это отличный кусок ui, который очень адаптируется. То есть, конечно, если вы ищете нечто большее, чем календарь.

Редактировать Поскольку jquery действительно не ваша вещь, вот что я считаю простым предложением. На стороне контроллера загрузите все обучающие сессии ORDER ASC (я не знаю, как работать с Linq, но, безусловно, это можно сделать). Я также предполагаю, что вы знаете числа дней, которые вы запрашиваете. Так в контроллере вы aglomerate даты, как это:

public ActionResult Trainings() 
    { 
     //dummy data 
     var trainings = new List<Training>(); 
     trainings.Add(new Training { TrainingDay = DateTime.Now }); 

     var week = new Dictionary<DayOfWeek, List<Training>>() 
     { 
      { DayOfWeek.Monday, new List<Training>() }, 
      { DayOfWeek.Tuesday, new List<Training>() }, 
      { DayOfWeek.Wednesday, new List<Training>() }, 
      { DayOfWeek.Thursday, new List<Training>() }, 
      { DayOfWeek.Friday, new List<Training>() }, 
      { DayOfWeek.Saturday, new List<Training>() }, 
      { DayOfWeek.Sunday, new List<Training>() }, 
     }; 
     for (int i = 0; i < trainings.Count; i++) 
     { 
      switch (trainings[i].TrainingDay.DayOfWeek) 
      { 
       case DayOfWeek.Friday: 
        week[DayOfWeek.Friday].Add(trainings[i]); 
        break; 
       case DayOfWeek.Monday: 
        week[DayOfWeek.Monday].Add(trainings[i]); 
        break; 
       case ..... 

      } 
     } 
     return View(week); 
    } 

это было бы получить все обучение в том же день вместе (я слышал, что некоторые люди идут в тренажерный зал более, что один раз в день, не если это правда или нет). Теперь вы можете иметь свой вид сильно типа, так что вы измените его на что-то вроде:

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<Dictionary<DayOfWeek, List<Training>>>" %> 

и не забудьте <%@ Import %> Учебном namespace и, наконец, вы просматриваете может быть что-то вроде этого:

<table> 
     <tr> 
      <td>Monday</td> 
      <td>Tuesday</td> 
      <td>Wednesday</td> 
      <td>Thursday</td> 
      <td>Friday</td> 
      <td>Saturday</td> 
      <td>Sunday</td> 
     </tr> 
     <tr> 
      <%foreach (KeyValuePair<DayOfWeek, List<Training>> entry in Model){%> 
       <td> 
        <%if (entry.Key == DayOfWeek.Monday){ 
         foreach (var training in entry.Value){ 
         Response.Write(training.TrainingDay); 
         } 
        }%> 
       </td> 
      <%} %> 
     </tr> 
    </table> 

Очевидно, вместо повторения одного и того же кода для записей вы могли бы создать метод расширения для объекта Html.

+0

jquery только усложняло бы еще больше. Я просто хотел бы знать, как правильно показывать мои данные под ассимилированным днем. – deltu100

+0

Я отредактировал свой ответ для работы со столами вместо использования jquery – coffeeyesplease

+0

Я попробую сегодня, большое спасибо - я считаю, что могу использовать это. Не могу дождаться, чтобы вернуться домой и попробовать его. – deltu100

Смежные вопросы