首页 > 解决方案 > 有没有办法让 FullCalendar 成为后端引用的对象?ASP.NET C#

问题描述

我有一个下拉列表,每次选择它都会根据从该专业的下拉列表中选择的 serviceID 更改日历上的视图。这是我正在尝试为项目创建的非 mvc 网站,我想让您每次去不同月份时都刷新约会?这是我的代码

默认.aspx

<script id='FullCalendar' type="text/javascript">
            document.addEventListener('DOMContentLoaded', function () {
                var sl_calendarEl = document.getElementById('sl_calendar');
                
                var sl_calendar = new FullCalendar.Calendar(sl_calendarEl, {
                    height: '100%',
                    expandRows: true,
                    slotMinTime: '08:00',
                    slotMaxTime: '18:00',
                    headerToolbar: {
                        left: 'prev,next today',
                        center: 'title',
                        right: 'dayGridMonth,timeGridWeek,timeGridDay,listWeek'
                    },
                    initialView: 'dayGridMonth',
                    
                    allDaySlot: false, 
                    navLinks: true, 
                    editable: true,
                    selectable: true,
                    nowIndicator: true,
                    dayMaxEvents: true, 

                    eventa: [<%=DataAsJson%>]
                    
                });
                      
                console.log(sl_calendar.view.currentStart);
                console.log(sl_calendar.getEvents());
                
                sl_calendar.render();
            });
        </script>

数据AsJson

    public string DataAsJson
    {
        get
        {
            
            String connectionString = WebConfigurationManager.ConnectionStrings["Database"].ConnectionString;
            SqlConnection myConnection = new SqlConnection(connectionString);

            myConnection.Open();
            
            string varYear = "2020";
            string varMonth = "08";

            
            String query = "SELECT ((isnull(Specialist.[lastName],'')+', ')+isnull(Specialist.[firstName],'')) AS name, CalendarDate, sc.[serviceID], srv.name, [specialistID], S.lastName, S.firstName, [callTypeID], CONVERT(time,LEFT(st.starttime,2)+':'+RIGHT(st.starttime,2)) AS starttime, CONVERT(time,LEFT(et.endtime,2)+':'+RIGHT(et.endtime,2)) AS endtime ";
            query = query + "FROM [sldb].[dbo].[ServiceCalendar] AS sc JOIN [dbo].[StartTime] AS st ON st.id = sc.starttimeID JOIN [dbo].[EndTime] AS et ON et.id = sc.endtimeID JOIN [dbo].[Services] AS srv ON srv.id = sc.serviceID JOIN [dbo].[Specialist] AS S ON S.id=sc.specialistID JOIN Specialist ON Specialist.id = sc.specialistID ";
            query = query + "WHERE RIGHT([calendarDate],4) = "+varYear+" AND LEFT([calendarDate],2) = "+varMonth+" AND sc.Active=1 AND S.active=1 and sc.serviceID = sc.serviceID and sc.serviceID = " + DropDownList1.SelectedValue;

            Debug.WriteLine(query);

            
            SqlCommand cmd = new SqlCommand(query, myConnection);

            SqlDataReader reader = cmd.ExecuteReader();


            string str = "";

            List<object> myList = new List<object>();

            if (reader.HasRows)
            {
                var indexOfId = reader.GetOrdinal("serviceID");
                var indexOfName = reader.GetOrdinal("name");

                var indexOfCD = reader.GetOrdinal("calendarDate");
                var indexOfStartTime = reader.GetOrdinal("starttime");
                var indexOfEndTime = reader.GetOrdinal("endtime");


                while (reader.Read())
                {

                    var ID = reader.GetValue(indexOfId).ToString();
                    var calendarDate = reader.GetValue(indexOfCD).ToString();


                    var name = reader.GetValue(indexOfName).ToString();

                    calendarDate = calendarDate.Substring(4, 4) + "-" + calendarDate.Substring(0, 2) + "-" + calendarDate.Substring(2, 2);

                    var starttime = reader.GetValue(indexOfStartTime).ToString();
                    var endtime = reader.GetValue(indexOfEndTime).ToString();




                    str = str + "{ title:'" + name + "', serviceID: '" + ID + "', start: '" + calendarDate + "T" + starttime + "', end: '" + calendarDate + "T" + endtime + "'},";


                }

            }
            
            var strL = str.Length;

            Console.WriteLine(str);
            Debug.WriteLine(str);
            Debug.WriteLine(strL);

            if (strL > 5)
            {
                str = str.Substring(0, strL - 1);
            }


            return str;

        }
    }

标签: javascriptc#asp.netfullcalendar

解决方案


推荐阅读