2017-05-08 10 views
0

Daypilotライトカレンダーを実装しようとしています。これまでのところ、それはok-ishになっていますが、私はちょっとした打撃を受けたようです。DayPilotカレンダーはイベントを作成します

私はカレンダーで新しいイベントを作成しようとしていますが、イベントの開始と終了以外の情報はデイパイトモーダルに渡しているようです。

JavaScript runtime error: 'team' is undefined 

上記の行は、私が得ているエラーです。 私のaspxページ内のコントロールコード:モーダルにデータを送信するために

<h1>Welcome <asp:Label ID="lblTeam" runat="server"></asp:Label></h1> 
     <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" AppendDataBoundItems="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"> 
      <asp:ListItem Selected="True" Value="0">Select a pitch</asp:ListItem> 
     </asp:DropDownList> 
     <DayPilot:DayPilotCalendar 
      ID="DayPilotCalendar1" 
      runat="server" 
      DataStartField="sess_start" 
      ShowEventStartEnd="true" 
      DataEndField="sess_end" 
      DataTextField="team" 
      DataIdField="BookingId" 
      ClientObjectName="dpc1" 
      TimeRangeSelectedHandling="JavaScript" 
      TimeRangeSelectedJavaScript="timeRangeSelected(start, end, team, pitch)" 
      OnCommand="DayPilotCalendar1_Command" 
      NonBusinessBackColor="Black" 
      HeightSpec="BusinessHoursNoScroll" 
      BusinessEndsHour="20" 
      OnEventMove="DayPilotCalendar1_EventMove" 
      EventMoveHandling="CallBack" 
      /> 

私のJavaScriptコード:

私はちょうど開始以上のものを合格と終えることができるようにする必要があり
function timeRangeSelected(start, end, team, pitch) { 
     team = document.getElementById('<%= lblTeam.ClientID %>').innerText; 
     var pitchSel = document.getElementById('<%= DropDownList1.ClientID %>'); 
     pitch = pitchSel.options[pitchSel.selectedIndex].value; 
     var modal = new DayPilot.Modal(); 
     modal.top = 60; 
     modal.width = 300; 
     modal.opacity = 70; 
     modal.border = "10px solid #d0d0d0"; 
     modal.closed = function() { 
      if (this.result == "OK") { 
       dpc1.commandCallBack('refresh'); 
      } 
      dpc1.clearSelection(); 
     }; 
     modal.showUrl("New.aspx?start=" + start.toStringSortable() + "&end=" + end.toStringSortable() + "&r=" + team + "&pitch=" + pitch); 
    } 

モーダル。 私が言及したように、私はここで何が起こっているのか分かりませんので、提供できるガイダンスは高く評価されます。

答えて

0

私は間違っていたことを理解したので、他の誰かが同じ問題を抱えている場合は、私はそれをSOと共有すると思いました。

以下は、更新されたJavaScriptコードです。基本的に私の問題は、私がモーダルに渡すデータを格納する変数を宣言した場所に関連していました。関数の範囲外で宣言する必要があるときに関数の内部に配置しました。愚かな間違いだが作りやすい。

var team = document.getElementById('<%= lblTeam.ClientID %>').innerText; 
    var pitchSel = document.getElementById('<%= DropDownList1.ClientID %>'); 
    var pitch = pitchSel.options[pitchSel.selectedIndex].value; 

    function timeRangeSelected(start, end, team, pitch) { 
     var modal = new DayPilot.Modal(); 
     modal.top = 60; 
     modal.width = 300; 
     modal.opacity = 70; 
     modal.border = "10px solid #d0d0d0"; 
     modal.closed = function() { 
      if (this.result == "OK") { 
       dpc1.commandCallBack('refresh'); 
      } 
      dpc1.clearSelection(); 
     }; 
     modal.showUrl("New.aspx?start=" + start.toStringSortable() + "&end=" + end.toStringSortable() + "&r=" + team + "&pitch=" + pitch); 
    } 

これは将来誰かに役立つことを願っています。私でも、あなたは決して知らないかもしれません!