这是我为 ragrid 和 radscheduler 提供的 HTML 代码,我为我的 javascript 添加了一个单独的 .js 文件。我已经为此苦苦挣扎了 2 周。
<form runat="server">
<telerik:RadSkinManager ID="RadSkinManager1" runat="server" ShowChooser="true" />
<telerik:RadScriptManager runat="server" ID="RadScriptManager1" />
<input type="hidden" runat="server" id="TargetSlotHiddenField" />
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="JobRadScheduler">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="JobRadScheduler" LoadingPanelID="RadAjaxLoadingPanel1" />
</UpdatedControls>
</telerik:AjaxSetting>
<telerik:AjaxSetting AjaxControlID="TaskRadGrid">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="TaskRadGrid"></telerik:AjaxUpdatedControl>
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>
<telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" />
<telerik:RadPageLayout runat="server" ID="RadPageLayout1" CssClass="radformlayout">
<Rows>
<telerik:LayoutRow>
<Columns>
<telerik:LayoutColumn>
<div class="demo-container no-bg">
<telerik:RadSplitter RenderMode="Lightweight" runat="server" ID="RadSplitter1" Height="900px" Width="2300px"
CssClass="exampleContainer" Orientation="Horizontal" Skin="Metro" EnableEmbeddedSkins="false">
<telerik:RadPane runat="server" ID="TopPane" Height="700px" Scrolling="None">
<telerik:RadScheduler runat="server" ID="JobRadScheduler" SelectedView="WeekView" CssClass="RadScheduler" Width="100%"
RenderMode="Lightweight" EnableDescriptionField="true" OnNavigationComplete="JobRadScheduler_NavigationComplete"
DataKeyField="ScheduleID" DataSubjectField="Subject" DataStartField="StartDate" DataEndField="EndDate" Skin="Bootstrap"
OnDataBound="JobRadScheduler_DataBound" Height="700px" RowHeight="50px" EnableEmbeddedSkins="false" CustomAttributeNames="JobID"
FirstDayOfWeek="Monday" LastDayOfWeek="Friday" WeekView-DayStartTime="08:00:00" DayEndTime="17:00:00" OverflowBehavior="Auto"
ShowHoursColumn="true"
OnAppointmentCreated="JobRadScheduler_AppointmentCreated"
OnAppointmentInsert="JobRadScheduler_AppointmentInsert"
OnAppointmentUpdate="JobRadScheduler_AppointmentUpdate">
<AdvancedForm Modal="true" />
<AppointmentTemplate>
<%# Eval("Subject")%>
</AppointmentTemplate>
<TimeSlotContextMenuSettings EnableDefault="true"></TimeSlotContextMenuSettings>
<AppointmentContextMenuSettings EnableDefault="true"></AppointmentContextMenuSettings>
</telerik:RadScheduler>
</telerik:RadPane>
<telerik:RadSplitBar runat="Server" ID="RadSplitBar1">
</telerik:RadSplitBar>
<telerik:RadPane runat="server" ID="BottomPane">
<div style="float: left; height: 100%; width: 55px; background: #E3EFFF; text-align: center; border-right: 0px solid #6593CF;">
<img src="images/tasks.gif" alt="" />
</div>
<div style="margin-left: 56px; border: none;">
<telerik:RadGrid RenderMode="Lightweight" runat="server" ID="TaskRadGrid" GridLines="None" OnNeedDataSource="TaskRadGrid_NeedDataSource"
AutoGenerateColumns="False" OnRowDrop="TaskRadGrid_RowDrop" Skin="Metro" Style="border: none; outline: 0"
Height="100%" AllowAutomaticInserts="True" AllowAutomaticUpdates="true" EnableEmbeddedSkins="false"
AllowAutomaticDeletes="true" OnItemCreated="TaskRadGrid_ItemCreated"
OnItemCommand="TaskRadGrid_ItemCommand" AllowSorting="true">
<ClientSettings AllowRowsDragDrop="True">
<Selecting AllowRowSelect="True"></Selecting>
<ClientEvents OnRowDropping="rowDropping" OnRowDblClick="onRowDoubleClick"></ClientEvents>
</ClientSettings>
<MasterTableView DataKeyNames="JobID" ShowHeadersWhenNoRecords="true">
<SortExpressions>
<telerik:GridSortExpression FieldName="DueDate" SortOrder="Ascending"></telerik:GridSortExpression>
</SortExpressions>
<Columns>
<telerik:GridTemplateColumn DataField="Subject" HeaderText="Task">
<ItemTemplate>
<asp:Label runat="server" ID="Label1" Text='<%# Bind("JobNumber") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:LinkButton Text="Add new task" CommandName="<%# RadGrid.InitInsertCommandName %>"
runat="server" ID="LinkButton1"></asp:LinkButton>
</FooterTemplate>
<EditItemTemplate>
<asp:TextBox runat="Server" ID="TextBox1" Text='<%# Bind("JobNumber") %>' Width="100%"></asp:TextBox>
</EditItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridBoundColumn UniqueName="JobNumber" HeaderText="Job Number" DataField="JobNumber"></telerik:GridBoundColumn>
<telerik:GridBoundColumn UniqueName="OrderDate" HeaderText="Order Date" DataField="OrderDate"></telerik:GridBoundColumn>
<telerik:GridBoundColumn UniqueName="DueDate" HeaderText="Due Date" DataField="DueDate"></telerik:GridBoundColumn>
<telerik:GridButtonColumn ConfirmText="Delete this Appointment?" ButtonType="ImageButton"
CommandName="Delete" Text="Delete" UniqueName="DeleteColumn">
<HeaderStyle Width="20px"></HeaderStyle>
<ItemStyle HorizontalAlign="Center" CssClass="MyImageButton"></ItemStyle>
</telerik:GridButtonColumn>
</Columns>
</MasterTableView>
</telerik:RadGrid>
</div>
</telerik:RadPane>
</telerik:RadSplitter>
</div>
</telerik:LayoutColumn>
</Columns>
</telerik:LayoutRow>
</Rows>
</telerik:RadPageLayout>
<telerik:RadScriptBlock runat="Server" ID="RadScriptBlock1">
<script type="text/javascript">
/* <![CDATA[ */
Sys.Application.add_load(function () {
demo.scheduler = $find("<%= JobRadScheduler.ClientID %>");
demo.targetSlotHiddenFieldId = "<%=TargetSlotHiddenField.ClientID %>";
});
/* ]]> */
</script>
<script type="text/javascript" src="scripts/scripts.js"></script>
</telerik:RadScriptBlock>
</form>
这是我的 JS,我只想让 Radscheduler 看到新的约会。我没有赢得这个,我不确定我做错了什么,因为我没有很多 Javascript 技能
(function () {
var demo = window.demo = window.demo || {};
window.rowDropping = function (sender, eventArgs) {
// Fired when the user drops a grid row
var htmlElement = eventArgs.get_destinationHtmlElement();
if (isPartOfSchedulerAppointmentArea(htmlElement)) {
// The row was dropped over the scheduler appointment area
// Find the exact time slot and save its unique index in the hidden field
var timeSlot;
if ($telerik.$(htmlElement).parents(".rsApt").length != 0)
timeSlot = demo.scheduler.getAppointmentFromDomElement(htmlElement).get_timeSlot();
else
timeSlot = demo.scheduler._activeModel.getTimeSlotFromDomElement(htmlElement);
$get(demo.targetSlotHiddenFieldId).value = timeSlot.get_index();
// The HTML needs to be set in order for the postback to execute normally
eventArgs.set_destinationHtmlElement(demo.targetSlotHiddenFieldId);
}
else {
// The node was dropped elsewhere on the document
eventArgs.set_cancel(true);
}
}
function isPartOfSchedulerAppointmentArea(htmlElement) {
// Determines if an HTML element is part of the scheduler appointment area
// This can be either the rsContent or the rsAllDay div (in day and week view)
return $telerik.$(htmlElement).parents().is("div.rsAllDay") ||
$telerik.$(htmlElement).parents().is("div.rsContent")
}
window.onRowDoubleClick = function (sender, args) {
sender.get_masterTableView().editItem(args.get_itemIndexHierarchical());
}
}());
它没有给出任何错误,但 htmlElement 是空白的。请有人帮忙