我正在尝试实现daypilot lite日历。到目前为止,一切顺利,但是我似乎遇到了一点颠簸。
我正在尝试在卡兰德创建一个新事件,但我似乎无法将活动的开始和结束以外的任何信息传递给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);
}
我需要能够传递更多的开始和终点。正如我提到的,我不确定这里发生了什么,因此可以提供任何指导。
我弄清楚了我在做什么错,所以我认为我会与之分享,以防其他人遇到相同的麻烦。
下面是我更新的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);
}
我希望将来对某人有所帮助。甚至可能是我,你永远不知道!