Я создаю мастер-роту, используя Daypilot.Daypilot - загрузка назначений из SQL Server
В настоящее время я храню встречи в базе данных, но я хотел бы получить все встречи на определенный день и отобразить их в календаре, не имеющем значения DATES.
E.G все назначения, созданные в понедельник, должны всегда отображаться в понедельник, не имеющими значения для ДАТА.
Текущий выберите
public DataTable GetAssignmentsForLocation(DayPilotCalendar calendar)
{
DataTable dt = new DataTable();
var da = CreateDataAdapter("select * from [master_rota] where [LocationId] = @location and Week = @Week");
AddParameterWithValue(da.SelectCommand, "location", (int)calendar.ClientState["location"]);
AddParameterWithValue(da.SelectCommand, "week", (int)calendar.ClientState["week"]);
da.Fill(dt);
return dt;
}
И
protected void DayPilotCalendar1_Command(object sender, CommandEventArgs e)
{
switch (e.Command)
{
case "navigate":
var start = (DateTime)e.Data["start"];
DayPilotCalendar1.StartDate = start;
DayPilotCalendar1.DataSource = new DataManager_MasterRota().GetAssignmentsForLocation(DayPilotCalendar1);
DayPilotCalendar1.DataBind();
DayPilotCalendar1.Update();
break;
case "refresh":
DayPilotCalendar1.DataSource = new DataManager_MasterRota().GetAssignmentsForLocation(DayPilotCalendar1);
DayPilotCalendar1.DataBind();
DayPilotCalendar1.Update();
break;
case "day":
DayPilotCalendar1.ViewType = ViewTypeEnum.Day;
DayPilotCalendar1.StartDate = (DateTime)e.Data["date"];
DayPilotCalendar1.DataSource = new DataManager_MasterRota().GetAssignmentsForLocation(DayPilotCalendar1);
DayPilotCalendar1.DataBind();
DayPilotCalendar1.Update();
break;
case "week":
DayPilotCalendar1.ViewType = ViewTypeEnum.Week;
DayPilotCalendar1.DataSource = new DataManager_MasterRota().GetAssignmentsForLocation(DayPilotCalendar1);
DayPilotCalendar1.DataBind();
DayPilotCalendar1.Update();
break;
}
}
Создание
public void CreateAssignment(DateTime start, DateTime end, int location, int week, int person, string note, DayOfWeek day)
{
using (DbConnection con = CreateConnection())
{
con.Open();
// string id = "";
var cmd = CreateCommand("insert into [master_rota] ([AssignmentStart], [AssignmentEnd], [LocationId], [PersonId], [AssignmentNote], week, day) values (@start, @end, @location, @person, @note, @Week, @day)", con);
AddParameterWithValue(cmd, "start", start);
AddParameterWithValue(cmd, "end", end);
AddParameterWithValue(cmd, "location", location);
AddParameterWithValue(cmd, "week", week);
AddParameterWithValue(cmd, "person", person);
AddParameterWithValue(cmd, "note", note);
AddParameterWithValue(cmd, "day", day);
cmd.ExecuteScalar();
}
}
записей базы данных: база данных записывает день для каждой записи, так что в теории это должно быть возможно загрузить все значения для заданного значения дня
Все записи например для «День 1», все должны показать в понедельник, не имеет значения из DATE
календарь выглядит ниже. Как вы можете видеть, что нет даты показана, так как он всегда должен загрузить назначение, если DAY соответствует
Может кто-то пожалуйста, помогите мне в построении оператора выбора, так что назначение нагрузку на календарь правильно? День EG 1 назначение в понедельник, 2-е дня на вторник и т.д ....
Вы еще не указали нам код для заполнения календаря? Вы просто заполняете DataTable –
добавили его сейчас –
Это только INSERT, какой код вы используете для назначения таблицы данных в Календарь? –