我无法使用 '$("# calendar") 将屏幕定位在特定日期。 FullCalendar('gotoDate', 日期);'在全日历 v.3.10 js/c#

Posted

技术标签:

【中文标题】我无法使用 \'$("# calendar") 将屏幕定位在特定日期。 FullCalendar(\'gotoDate\', 日期);\'在全日历 v.3.10 js/c#【英文标题】:I can't position the screen on a specific date with '$("# calendar"). FullCalendar (' gotoDate ', date);' in fullcalendar v.3.10 js/c#我无法使用 '$("# calendar") 将屏幕定位在特定日期。 FullCalendar('gotoDate', 日期);'在全日历 v.3.10 js/c# 【发布时间】:2021-10-22 00:27:24 【问题描述】:

我有这个代码

$(document).ready(function () 
    $("#btnsearch").click(function () 
        var res = $("#txtSearch").val();
        res = res.substring(0,9);
        date = moment(res.val(), "DD/MM/YYYY HH:mm").format("DD-MM-YYYY HH:mm");
        $("#calendar").fullCalendar('gotoDate', date);       
    ),

在前端(默认.aspx):

<asp:Button  Text="Search" id="btnsearch" runat="server" /> 

但是当我充电时,事件页面的开始和结束参数设置为今天的日期。:

  public static List<CalendarEvent> getEvents(DateTime start, DateTime end)
  
           
          List<CalendarEvent> events = new List<CalendarEvent>();
          SqlConnection con = new SqlConnection(connectionString);

          if (System.Web.HttpContext.Current.Session["Username"]!= null)  
             String user= System.Web.HttpContext.Current.Session["Username"].ToString();
          

          SqlCommand cmd = new SqlCommand("SELECT Id_xEvent,description, title, event_start, event_end, all_day,color,place FROM xEvent where event_start>=@start AND event_end<=@end", con);
           // SqlCommand cmd = new SqlCommand("SELECT xDataConsRichiesta,xStatoAbbinamento,(convert(varchar,Id_DoTes)  + ' ' + 'data doc: ' + convert(varchar,[DataDoc],103) + ' codice doc: ' +  convert(varchar,[Cd_Do]) + '   tipo documento:' + convert(varchar,[TipoDocumento]) + ' codice cliente:' + convert(varchar,[Cd_CF])) as title ,(' codice cf dest:' + convert(varchar,[Cd_CFDest]) + ' codice cf sede:' + convert(varchar,isnull([Cd_CFSede],'')) +  ' data consegna: ' + convert(varchar,[DataConsegna],103) + ' data trasporto ' + convert(varchar,isnull([TrasportoDataora],''),103) + ' volume: ' +  convert(varchar,isnull([VolumeTotale],'')) + ' luogo scarico: ' + convert(varchar,isnull([Cd_DoLuogoScarico],'')) + ' tipo vettore:' + convert(varchar,isnull([xTipoVett],'')) + ' data cons richiesta: ' + convert(varchar,isnull([xDataConsRichiesta],''),103) + ' data consegna confermata:' + convert(varchar,isnull([xDataConsegnaConfermata],''),103)) as description      FROM [ADB_isolkappa].[dbo].[DOTes] where xDataConsRichiesta BETWEEN @start and @end", con);
          //SqlCommand cmd = new SqlCommand("SELECT event_id, description, title, event_start, event_end, all_day,color FROM Event e inner join dotes d on e.event_id=d.cd_xabbinamenti inner join xabbinamenti a on d.cd_xabbinamenti=a.cd_xabbinamenti where event_start>=@start AND event_end<=@end", con);
          //SqlCommand cmd = new SqlCommand("SELECT (Cd_CF + ' ' + NumeroDocRif + ' ' + DataDocRif + ' ' + numerodoc + ' ' + xCaricoCompleto + ' ' + Cd_DoTrasporto + ' ' + xTipoVett + ' ' + Completo + ' ' + Data_Spedizione + ' ' + xDataConsegnaConfermata + ' ' + DataConsegna + ' ' + Cd_DoLuogoCarico + ' ' + Cd_DoLuogoScarico +' ' + xOKLogistica) as description, title, event_start, event_end, all_day, color FROM Event e inner join dotes d on e.event_id = d.cd_xabbinamenti inner join xabbinamenti a on d.cd_xabbinamenti = a.cd_xabbinamenti where event_start>= @start AND event_end<= @end");
    
          cmd.Parameters.Add("@start", SqlDbType.DateTime).Value = start;
          cmd.Parameters.Add("@end", SqlDbType.DateTime).Value = end;
          //SqlCommand cmdIns = new SqlCommand();
          //string stato="0";

          using (con)
          
              con.Open();
              SqlDataReader reader = cmd.ExecuteReader();
              while (reader.Read())

JsonResponse.ashx 中调用 getEvents 函数

 foreach (CalendarEvent cevent in EventDAO.getEvents(start, end))
        
            tasksList.Add(new ImproperCalendarEvent 
                id = cevent.id,

更新:现在是代码

$("#btnsearch").click(function () 
        var res = $("#txtSearch").val();
        res = res.substring(0,10);
        date = moment(res, "DD/MM/YYYY HH:mm").format("DD/MM/YYYY HH:mm");
        $("#calendar").fullCalendar('gotoDate', date);
       ),

在 default.aspx 中: 搜索

它定位在请求的日期,但将月份与日期反转。例如,如果我在 2021 年 3 月 9 日(dd / mm / yyyy)搜索一个事件,它会将自身定位在 08/03 开始​​的那一周/2021

【问题讨论】:

btnSearch 是否回发到服务器?看起来可能是这样。如果是这样,那么您为处理它而编写的任何 jQuery 代码都无关紧要,因为无论如何页面都会在之后直接刷新。 P.S. getEvents 函数与其余代码有何关联?我没有看到任何类型的链接。 打扰一下 ADyson,你怎么能解决这个问题 好吧,做一个不回发的按钮 拜托阿迪森,你能看看更新吗?谢谢 【参考方案1】:

fullCalendar 3 直接接受 momentJS 对象。你不需要传递一个格式化的字符串。

如果你给它传递了一个格式化的字符串,它会尝试解析它。但它不知道您想要什么格式,所以如果您传递 03/09/2021 之类的内容,它不知道您是否想要采用 dd/mm/yyyy 或 mm/dd/yyyy 格式 - 它怎么可能告诉?所以它默认将其视为 mm/dd/yyyy (可能是因为这是美国的默认值和 javascript 中的一般标准默认值)。

date = moment(res.val(), "DD/MM/YYYY HH:mm")

会正常工作的。

【讨论】:

以上是关于我无法使用 '$("# calendar") 将屏幕定位在特定日期。 FullCalendar('gotoDate', 日期);'在全日历 v.3.10 js/c#的主要内容,如果未能解决你的问题,请参考以下文章

“无法绑定到 'ngModel',因为它不是 'p-calendar' 的已知属性”尝试使用 PrimeNG 组件的错误消息,为啥?

java mail text/calendar格式会议邀请邮件,网页版邮箱接收到的邮件内容无法换行

TypeError: date[("get" + method)] 不是 React-big-calendar 中的函数

vue-simple-calendar“类”项目属性不起作用

java 使用Date类和DateFormat抽象类和Calendar抽象类实现日历

soapui 碰到数组怎么填充数据