关于jquery插件fullcalendar的这个问题。 如何在回发后返回选定的日期?..
例如,我将周日议程作为默认视图。假设我选择下周(自定义周)并在其中创建事件。 回发后我回到默认周,但我想得到自定义周。
如何解决这个问题?请帮忙! 谢谢
答案 0 :(得分:1)
您必须保存用户选择的周数。在PHP中,您可以使用$_SESSION
来保存选定的周,当从事件创建过程返回时,脚本会获取此变量并显示该周。
session_start();
if (isset($_SESSION["week_number"]))
$week_number = $_SESSION["week_number"];
else
$week_number = $this_week;
echo '<script>var week_number = '.$week_number.'; </script>';
// insert script to show the calendar here, use the variable week_number in your
// Javascript
当用户点击“下周”按钮时,您必须通过对这样的文件的AJAX调用来告诉PHP:
<?php
session_start();
$_SESSION["week_number"] = $_GET["new_week_number"];
?>
使用get参数将新的周号发送到文件,即set_week_number.php?new_week_number=123
答案 1 :(得分:1)
javascript可以从属性中获取值,因此在回发之前将值放入会话状态。在回发时将会话状态的值拉入属性。然后从客户端获取该属性的值。
服务器端:
public string bar { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
bar = Session["barvalue"].ToString();
}
客户端:
$(document).ready(function() {
var foo = '<%= bar %>';
alert(foo);
});
答案 2 :(得分:1)
我自己一直在想这个。这就是我想出来的。
它折叠了两次:
我遇到的问题是当前日期的cookie是在FullCalendar的加载/初始化时设置的,之后读取了cookie。我通过在页面加载时读取cookie并删除它来解决这个问题。该日期的Cookie将在导航中设置。
$(document).ready(function() {
calendar = $('#calendar').fullCalendar( {
defaultView:$.cookie('fullcalendar_defaultView') || {if $_USER.status==1}'month'{else}'agendaWeek'{/if},
viewDisplay: function(view) {
$.cookie('fullcalendar_defaultView', view.name);
if ( calendar ) MySetDate();
}
}
function MySetDate()
{
var thedate = $('#calendar').fullCalendar('getDate');
raw_date = thedate + 'stringed';
raw_split_date = raw_date.split(' ');
switch (raw_split_date[1])
{
case 'Jan': raw_month = 0; break;
case 'Feb': raw_month = 1; break;
case 'Mrt': raw_month = 2; break;
case 'Apr': raw_month = 3; break;
case 'May': raw_month = 4; break;
case 'Jun': raw_month = 5; break;
case 'Jul': raw_month = 6; break;
case 'Aug': raw_month = 7; break;
case 'Sep': raw_month = 8; break;
case 'Oct': raw_month = 9; break;
case 'Nov': raw_month =10; break;
case 'Dec': raw_month =11; break;
}
$.cookie('lof_y', raw_split_date[3], { expires: 2 } );
$.cookie('lof_m', raw_month, { expires: 2 } );
$.cookie('lof_d', raw_split_date[2], { expires: 2 } );
}
function setMyView() {
$('#calendar').fullCalendar('gotoDate', $.cookie('lof_y'), $.cookie('lof_m'), $.cookie('lof_d') );
$.cookie('lof_y', null);
}
if ( $.cookie('lof_y') ) setMyView();
} );
答案 3 :(得分:0)
您可以执行如上所述的会话状态(这是ASP特定会话状态的link)。在链接页面上的代码示例下,是如何将值保存到会话状态以及如何从会话状态读取值的示例。是的,您可以从会话端获取值到客户端:)
答案 4 :(得分:0)
我尝试执行以下操作。 服务器端:
[HttpPost] public ActionResult Create(FormCollection collection){
...
Session["curdate"] = asi.appointmentDate.ToString();
}
public ActionResult CurrentDate(){
return (Session["curdate"] == null) ? null : Content(Session["curdate"].ToString());
}
客户方:
var sd = $.ajax(
{
url: '<%= ResolveUrl("~/Schedule/CurrentDate") %>',
async: false,
success: function(data, result) {
if (!result)
alert('Failure to retrieve the date.');
}
}
).responseText;
var selectedDate = (sd == "") ? new Date() : new Date(sd);
$('#calendar').fullCalendar('gotoDate', selectedDate);