2015-01-01 4 views
1

Я пытаюсь добавить скрипт на страницу, но ничего не происходит, календарь не отображается. Цель состоит в том, чтобы отображать календарь со списком событий, im пытается избежать веб-сервисов, чтобы получить список.Добавить скрипт на загрузку страницы C#

string CalendarScript = @"<script type=""text/javascript""> 
     jQuery(function ($) { 

      /* initialize the external events 
       -----------------------------------------------------------------*/ 

      $('#external-events div.external-event').each(function() { 

       // create an Event Object (http://arshaw.com/fullcalendar/docs/event_data/Event_Object/) 
       // it doesn't need to have a start or end 
       var eventObject = { 
        title: $.trim($(this).text()) // use the element's text as the event title 
       }; 

       // store the Event Object in the DOM element so we can get to it later 
       $(this).data('eventObject', eventObject); 

       // make the event draggable using jQuery UI 
       $(this).draggable({ 
        zIndex: 999, 
        revert: true,  // will cause the event to go back to its 
        revertDuration: 0 // original position after the drag 
       }); 

      }); 

      /* initialize the calendar 
      -----------------------------------------------------------------*/ 

      var date = new Date(); 
      var d = date.getDate(); 
      var m = date.getMonth(); 
      var y = date.getFullYear(); 


      var calendar = $('#calendar').fullCalendar({ 
       lang: ""pt"", 
       allDaySlot: false, 
       minTime: ""07:00:00"", 
       maxTime: ""23:59:59"", 

       defaultView: 'agendaWeek', 

       header: { 
        left: ' ', 
        center: ' ', 
        right: ' ' 
       }, 
       events: [ " + EventsList + @" 
       ] 
    , 

       columnFormat: { 

        week: 'dddd', 

       }, 

       editable: false, 
       droppable: false, // this allows things to be dropped onto the calendar !!! 

       selectable: false, 
       selectHelper: false 


      }); 


     }) 
    </script>"; 
     ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "InitCalendarEvents", CalendarScript, false); 

где EventList, как это

{ title: 'Some Event', start: new Date(y, m, d - 2, 16, 00), end: new Date(y, m, d - 2, 17, 00), allDay: false, color: 'blue !important', textColor: 'white !important' } 

ответ

1

Две вещи. Во-первых, когда вы используете регистр сценария с диспетчером сценариев, он должен быть просто javascript и не завернут в тег скрипта. Во-вторых, вы, скорее всего, захотите, чтобы функция произошла в событии add_load.

Это образец фрагмент кода:

this.Page.ClientScript.RegisterStartupScript(
    this.GetType(), 
    "StartupScript", 
    "Sys.Application.add_load(function() { functioncall(); });", 
    true); 

Обратите внимание, что параметр для функции яваскрипта является Java-функции и не является элементом HTML сценария. Кроме того, не то, что функция состоит из Sys.Application.add_load

Если вы выполняете эти две вещи, сценарий должен быть выполнен как минимум. Вопрос Sys.application.add_load vs document ready vs pageload, вероятно, относится к тому, что вы пытаетесь сделать.

Смежные вопросы