2015-10-15 78 views
0

我在我的MVC应用程序中使用DHTMLX调度程序。我在调度程序中阻止了一些时间。虽然鼠标悬停或点击被阻止的元素,我需要显示一个div或只是一条消息是可以做到的吗?在MVC中的DHTMLX调度程序中的鼠标悬停或div 4

我的控制器代码在调度显示阻塞元素

public ContentResult Data(DateTime from, DateTime to) 
     { 
      var scheduler = new DHXScheduler(this); 

      var user = (int)Session["UserID"]; 
      //var data = new SchedulerAjaxData(
      //  new SYTEntities().tblBusinessUserHolidays.Where(a => a.BusinessUserId == id && a.UserTypeId == 5).Select(e => new { id = e.Id, start_date = e.HolidayDate, text = e.HolidayDesc, end_date = "2015-07-08 10:30:00.000" }) 
      // ); 
      var data = new SchedulerAjaxData(
       new SYTEntities().tblApps.Where(a => a.UserId1 == user).Select(e => new { id = e.AppointmentID, start_date = e.StartDate, end_date = e.EndDate, text = e.Description, event_length = e.Event_length, event_pid = e.Event_pid, rec_type = e.rec_type }) 
       ); 


      var blocked = new SYTEntities().tblApps 
          .Where(e => e.UserId1 != user && e.StartDate < to && e.EndDate >= from) 
          .Select(e => new { e.StartDate, e.EndDate }).ToList(); 

      // var res = new SchedulerAjaxData(data);` 
      data.ServerList.Add("blocked_time", blocked); 

      return Content(data); 

     } 

脚本文件

[![window.schedulerClient = { 
    init: function() { 
     scheduler.serverList("blocked_time");//initialize server list before scheduler initialization 

     scheduler.attachEvent("onXLS", function() { 
      scheduler.config.readonly = true; 
     }); 

     scheduler.attachEvent("onXLE", function() { 
      var blocked = scheduler.serverList("blocked_time"); 
      schedulerClient.updateTimespans(blocked); 
      blocked.splice(0, blocked.length); 

      //make scheduler editable again and redraw it to display loaded timespans 
      scheduler.config.readonly = false; 
      scheduler.setCurrentView(); 
     }); 


    }, 

    updateTimespans: function (timespans) { 
     // preprocess loaded timespans and add them to the scheduler 
     for (var i = 0; i < timespans.length; i++) { 
      var span = timespans\[i\]; 

      span.start_date = scheduler.templates.xml_date(span.StartDate); 
      span.end_date = scheduler.templates.xml_date(span.EndDate); 


      // add a label 
      span.html = scheduler.templates.event_date(span.start_date) + 
       " - " + 
       scheduler.templates.event_date(span.end_date); 


      //define timespan as 'blocked' 
      span.type = "dhx_time_block"; 
      scheduler.deleteMarkedTimespan(span);// prevent overlapping 

      scheduler.addMarkedTimespan(span); 

      $(".dhx_scale_holder ").mouseover(function() { 

       alert("hi"); 

      }) 



     } 
    } 

}; 

Message or div while hovering or clicking the blocked elements

回答

1
<script type="text/javascript"> 
     $(".dhx_cal_container").delegate(".dhx_time_block", "mouseover", function (event) { 

      dhtmlx.message("Blocked "); 

     }); 
</script> 

我添加了这样的脚本代码后,只有它的作品。

0

您可以使用onMouseMove事件从调度API,或者您也可以手动捕获事件。 如果你这样做了以后 - 请注意标注时间跨度的是DOM元素添加,默默地删除,也就是说,它的最好不要直接连接监听到他们,但使用事件代表团来代替:

// .dhx_cal_container - top node of dhtmlxScheduler 
$(".dhx_cal_container").on("mouseover", ".dhx_time_block", function(event) { 
    // do something 
}); 

下面是一个完整的例子: http://docs.dhtmlx.com/scheduler/snippet/263a0dfa

+0

嗨,谢谢你的回复。我在应用程序中添加了这段代码,但在mouseover时没有变化。你能帮我吗? – Nisha

+0

在哪个地方我们需要指定您在上面提到的特定代码。 – Nisha