Asp.net mvc 4 mVC中的DHTMLX调度器
我正在MVC应用程序中使用DHTMLX调度程序。在我的调度程序中,当我们拖放计时时,将显示一个弹出窗口,默认情况下,该窗口在scheduler.js文件中工作。我的问题是,在拖动显示自定义弹出窗口所需的时间时。可以使用调度程序吗? 谁能帮帮我吗 调度程序的代码是 公共操作结果日历视图(int?id、int?CustomerUserid) {Asp.net mvc 4 mVC中的DHTMLX调度器,asp.net-mvc-4,Asp.net Mvc 4,我正在MVC应用程序中使用DHTMLX调度程序。在我的调度程序中,当我们拖放计时时,将显示一个弹出窗口,默认情况下,该窗口在scheduler.js文件中工作。我的问题是,在拖动显示自定义弹出窗口所需的时间时。可以使用调度程序吗? 谁能帮帮我吗 调度程序的代码是 公共操作结果日历视图(int?id、int?CustomerUserid) { //id = (int)Session["BUId"]; if (CustomerUserid == (int)Sessio
//id = (int)Session["BUId"];
if (CustomerUserid == (int)Session["UserID"] || (CustomerUserid == (int)Session["UserID"] && id == (int)Session["BusinessId"]))
{
var scheduler = new DHXScheduler(this);
string val = System.Configuration.ConfigurationManager.AppSettings["UserTypeId"];
int code = Convert.ToInt32(val);
//var cuid = (int)Session["UserID"];
// List<tblUser> user = new List<tblUser>();
// var user1 = (from s in user
// where s.UserTypeId == 3 && s.UserID == cuid
// select new Appt
// {
// AddCustomer = s.DependentCustomer.ToString()
// }).ToList();
var cal = (from s
in db.tblUsers
where s.UserTypeId == code && s.UserID == id
select new Appt
{
BusinessName = s.tblBusinessCategory.BusinessName
// StartTime = s.WorkingHour.StartTime,
}).FirstOrDefault();
var sa = (from a
in db.WorkHours
where a.BusinessUserId == id
select new Appt
{
StartTime = a.StartTime,
EndTime = a.EndTime
}).FirstOrDefault();
Session["StartTime"] = sa.StartTime.Hour;
Session["EndTime"] = sa.EndTime.Hour;
Session["BUName"] = cal.BusinessName.ToString();
// var scheduler = new DHXScheduler(this);//{ InitialDate = new DateTime(2015, 1, 30) };
scheduler.Skin = DHXScheduler.Skins.Flat;
scheduler.Data.Loader.PreventCache();
scheduler.EnableDynamicLoading(SchedulerDataLoader.DynamicalLoadingMode.Week);
scheduler.Extensions.Add(SchedulerExtensions.Extension.Recurring);
//scheduler.Extensions.Add(SchedulerExtensions.Extension.ActiveLinks);
//scheduler.Extensions.Add(SchedulerExtensions.Extension.Collision);
scheduler.Extensions.Add(SchedulerExtensions.Extension.Limit);
scheduler.Config.limit_start = new DateTime(2015, 8, 25);
scheduler.Config.limit_end = new DateTime(2015, 9, 25);
scheduler.LoadData = true;
scheduler.EnableDataprocessor = true;
scheduler.Config.show_loading = true;
// scheduler.Config.buttons_left = ["dhx_save_btn","dhx_cancel_btn","locate_button"];
//var button = new LightboxButtonList();
//scheduler.Lightbox.Add();
int days = System.DateTime.Now.Day - 1;
int months = System.DateTime.Now.Month;
int years = System.DateTime.Now.Year;
int ihour = System.DateTime.Now.Hour;
int iminute = System.DateTime.Now.Minute;
int isecond = System.DateTime.Now.Second;
scheduler.TimeSpans.Add(new DHXBlockTime()
{
StartDate = new DateTime(2014, 2, 10),
EndDate = new DateTime(years, months, days + 1, ihour, iminute, isecond),
});
Session["BUId"] = id;
var parameter = new SqlParameter[1];
parameter[0] = new SqlParameter { ParameterName = "UserId", Value = id };
List<Appt> cm = new List<Appt>();
using (SYTEntities context = new SYTEntities())
{
cm = context.Database.SqlQuery<Appt>("exec spHoliday @UserId", parameter).ToList();
}
int iyear = 2015;
int imonth = 8;
int iday = 09;
//int ihour = 10;
int imin = 05;
int isec = 00;
foreach (var cp in cm)
{
iyear = cp.HolidayDate.Year;
imonth = cp.HolidayDate.Month;
iday = cp.HolidayDate.Day;
scheduler.TimeSpans.Add(new DHXMarkTime()
{
StartDate = new DateTime(iyear, imonth, iday), //new DateTime(2015, 8, 06), //hl.HolidayDate ?? default(DateTime),
EndDate = new DateTime(iyear, imonth, iday + 1),
// Day = DayOfWeek.Friday,
CssClass = "red_section",
HTML = "hos",
SpanType = DHXTimeSpan.Type.BlockEvents
});
}
var parameters = new SqlParameter[1];
parameters[0] = new SqlParameter { ParameterName = "BusinessUserId", Value = id };
List<Appt> wt = new List<Appt>();
using (SYTEntities context = new SYTEntities())
{
wt = context.Database.SqlQuery<Appt>("exec spGetWaitingList @BusinessUserId", parameters).ToList();
}
int ihr;
int imts;
int idayd;
int iyr;
int imnth;
int ihrs;
foreach (var cs in wt)
{
iyr = cs.EndTime.Year;// System.DateTime.Now.Year;
imnth = cs.EndTime.Month;// System.DateTime.Now.Month;
idayd = cs.EndTime.Day;// System.DateTime.Now.Day;
ihr = cs.EndTime.Hour; //.Hours; //.Hour;
imts = cs.EndTime.Minute; //.Minutes; //.Minute;
isec = cs.EndTime.Second; //.Seconds;
ihrs = cs.EndTime.Hour - cs.StartTime.Hour;
scheduler.TimeSpans.Add(new DHXMarkTime()
{
StartDate = new DateTime(iyr, imnth, idayd, ihr, imts, isec), //new DateTime(2015, 8, 06), //hl.HolidayDate ?? default(DateTime),
EndDate = new DateTime(iyr, imnth, idayd, ihr, imts, isec),
// Day = DayOfWeek.Friday,
CssClass = "green_section",
HTML = "",
SpanType = DHXTimeSpan.Type.BlockEvents
});
}
//for (int i = 0; i < 4; i++)
//{
// scheduler.TimeSpans.Add(new DHXMarkTime()
// {
// StartDate = new DateTime(iyear, imonth,iday,ihour, imin, isec), //new DateTime(2015, 8, 06), //hl.HolidayDate ?? default(DateTime),
// EndDate = new DateTime(iyear, imonth, iday,ihour, imin, isec),
// CssClass = "red_section",
// SpanType = DHXTimeSpan.Type.BlockEvents
// });
//}
scheduler.BeforeInit.Add("schedulerClient.init()");
//var check = new LightboxCheckbox("highlighting", "Important") { MapTo = "color", CheckedValue = "#FE7510" };
//scheduler.Lightbox.Add(check);
return View(scheduler);
}
return View();
}
//id=(int)会话[“BUId”];
if(CustomerUserid==(int)会话[“UserID”]| |(CustomerUserid==(int)会话[“UserID”]&&id==(int)会话[“BusinessId”])
{
var调度程序=新的DHXScheduler(此);
字符串val=System.Configuration.ConfigurationManager.AppSettings[“UserTypeId”];
int code=Convert.ToInt32(val);
//var cuid=(int)会话[“UserID”];
//列表用户=新列表();
//var user1=(来自用户中的s)
//其中s.UserTypeId==3&&s.UserID==cuid
//选择新应用程序
// {
//AddCustomer=s.DependentCustomer.ToString()
//}).ToList();
var cal=(来自s)
在db.tblUsers中
其中s.UserTypeId==code&&s.UserID==id
选择新应用程序
{
BusinessName=s.tblBusinessCategory.BusinessName
//StartTime=s.WorkingHour.StartTime,
}).FirstOrDefault();
var sa=(来自a)
以分贝计算的工作时间
其中a.BusinessUserId==id
选择新应用程序
{
开始时间,
EndTime=a.EndTime
}).FirstOrDefault();
会话[“开始时间”]=sa.StartTime.Hour;
会话[“EndTime”]=sa.EndTime.Hour;
会话[“BUName”]=cal.BusinessName.ToString();
//var scheduler=newdhxscheduler(this);//{InitialDate=new DateTime(2015,1,30)};
scheduler.Skin=DHXScheduler.Skins.Flat;
scheduler.Data.Loader.PreventCache();
scheduler.EnableDynamicLoading(SchedulerDataLoader.DynamicLoadingMode.Week);
scheduler.Extensions.Add(schedulerextension.Extension.recurtive);
//scheduler.Extensions.Add(schedulerextension.Extension.ActiveLinks);
//scheduler.Extensions.Add(schedulerextension.Extension.Collision);
scheduler.Extensions.Add(schedulerextension.Extension.Limit);
scheduler.Config.limit_start=新日期时间(2015,8,25);
scheduler.Config.limit_end=新日期时间(2015,9,25);
scheduler.LoadData=true;
scheduler.EnableDataprocessor=true;
scheduler.Config.show_load=true;
//scheduler.Config.buttons_left=[“dhx_save_btn”、“dhx_cancel_btn”、“locate_button”];
//var button=新的LightboxButtonList();
//scheduler.Lightbox.Add();
int days=System.DateTime.Now.Day-1;
int months=System.DateTime.Now.Month;
int years=System.DateTime.Now.Year;
int ihour=System.DateTime.Now.Hour;
int iminute=System.DateTime.Now.Minute;
int isecond=System.DateTime.Now.Second;
scheduler.TimeSpans.Add(新的DHXBlockTime()
{
StartDate=新的日期时间(2014年2月10日),
EndDate=新日期时间(年、月、日+1、小时、分钟、秒),
});
会话[“BUId”]=id;
var参数=新的SqlParameter[1];
参数[0]=newsqlparameter{ParameterName=“UserId”,Value=id};
列表您的意思是在任务移动/调整大小期间需要显示某种弹出窗口来显示其他信息吗?
如果是这样,您可以将模板用于任务内容-如果当前任务正在被拖动或调整大小,模板应返回带有自定义内容的绝对定位弹出窗口
例如。
JS:
结果:
不过,使用这种方法,您需要比我在本示例中更仔细地管理工具提示位置。由于popup嵌套在事件的DOM元素中,它将受到调度程序容器的限制。例如,当事件位于最左边的列中时,您需要将popup定位在右边,否则它将被剪切
下面是相关的API方法
scheduler.attachEvent("onSchedulerReady", function () {
var headerTemplate = scheduler.templates.event_header;
scheduler.templates.event_header = function (start, end, event) {
var content = headerTemplate(start, end, event);
if (scheduler.getState().drag_id == event.id) {
var dragPopup = "<div class='drag-popup'>" + headerTemplate(start, end, event) + "</div>";
content += dragPopup;
}
return content;
};
});
.drag-popup{
position: absolute;
right:0;
top: 0;
margin-right: 120px;
padding: 10px;
width: 100px;
background-color: inherit;
color: inherit;
z-index: 5;
}