2

我正在使用 ASP.NET 的日历控件。当我将鼠标悬停在日历控件中的特定日期上时,我需要显示一个弹出表单。此弹出窗口应显示数据库中的数据。

有人对此有解决方案吗?

4

3 回答 3

0

我不知道日期跨度的asp名称如何,检查一下,在让选择器用户jQuery添加事件后很容易检测到

jQuery('selector').hover(function(){ //or use mousemove
  getPopup(jQuery(this).text()); // just send any data to detect the date
}) ;

之后,您需要在 getPopup 函数中发出 AJAX 请求

你可以使用

jQuery.get()//or jQuery.post()
__doPostBack()//if you have update panels 
//or any ajax technique xmlhttprequest,PM,...

在 ajax 请求的响应中,只需绘制弹出窗口...

希望这可以帮助

例如 getPopup 函数

function getPopup(date/*for example*/){
  jQuery.getScript('www.myWebsite.com/pageThatDrawsThePopup?date='+date);
  // getScript assuming that the return value is JS code the immediately draws the popup
  // ?date = date assuming that your page takes the date as query string and get the data from the database upon this field 
  //dont forget to change the url
 //very simple very easy ...  

}
于 2012-07-23T09:43:00.063 回答
0

你应该有一个空的 div:

<div id="popup"></div>

然后将事件绑定到日历元素:

('li.calendar').hover(function(){
   //make an ajax call and populate the popup div with the data
   //easiest method is jquery.load(), but if you need more control use jquery.ajax();
   $("popup").load('path/to/page.asp',data,function(){
       $("popup").show();
   });


});

查看jquery.load()jquery.ajax()

于 2012-07-23T09:49:38.443 回答
0

将 CSS 类添加到包含应触发弹出窗口的日期的单元格。您需要覆盖DayRender 事件才能执行此操作。

void myCalendar_DayRender(object sender, DayRenderEventArgs e)
{
    if (e.Day.Date.Day.ToString().EndsWith("7")){// Replace with your own condition
        e.Cell.CssClass+=   "specialCell"; //replace with your own custom css class name
    }
}

然后添加一些 JavaScript(或 Jquery)来触发弹出窗口。JQuery ajax 函数提供了获取数据并根据@user1225246 的回答填充弹出窗口的最简单方法。

$(document).ready(function(){

    $('.specialCell').hover(function(){

        function(){//This will get called when you mouseover
            alert('put your JQuery AJAX code here.');
        },

        function(){
            alert('do any clean-up (e.g. hiding the popup if you need to) here.');
        }
    });
于 2012-07-23T10:00:09.427 回答