【问题标题】:RadScheduler mixing appointmentsRadScheduler 混合约会
【发布时间】:2015-04-21 06:15:23
【问题描述】:

我的项目中有一个来自 Telerik 的 RadScheduler。在同一页面上,它下方有一个 RadGrid。当我将一个约会从网格拖到调度器时,调度器上会出现一个不同的约会。

这里是网格的RowDrop方法:

       protected void AppointmentRadGrid_RowDrop(object sender, GridDragDropEventArgs e)
       {
        GridDataItem dataItem = e.DraggedItems[0];

        var values = new Hashtable();
        dataItem.ExtractValues(values);

        //long id = (long)dataItem.GetDataKeyValue("ID");
        var subject = (string)values["Subject"];
        long saNo = Int64.Parse(values["SANo"].ToString());
        string targetSlotIndex = TargetSlotHiddenField.Value;

        if (targetSlotIndex != string.Empty)
        {
            HandleSchedulerDrop(subject, targetSlotIndex, saNo);
            TargetSlotHiddenField.Value = string.Empty;
        }
        //RadScheduler1.Rebind();
        AppointmentRadGrid.Rebind();

        CheckRadGridPanelVisible();
        }

似乎在这一行:

         dataItem.ExtractValues(values);

提取了错误的值,从而导致在 日历。

这是 RadScheduler 中的错误还是我做错了什么?任何帮助表示赞赏。

【问题讨论】:

  • 复制这个演示是否完全适合您:demos.telerik.com/aspnet-ajax/scheduler/examples/…?您是否在网格 ItemCommand 事件中创建哈希表? GetDataKeyValue() 方法是否返回正确的数据?如果是这样,您可以只使用它并将所需的字段添加到表视图的 DataKeyNames 属性中。
  • 感谢您的评论。结果是 PopulateScheduler();在 Page_Load 中没有包裹在 if(!IsPostBack){}
  • 那么,现在可以了吗?如果是这样,请将其发布为答案并接受它:) 或者我可以将其与演示链接一起发布:)
  • 是的,现在可以了。请发布答案,我会接受它,因为您的评论使我找到了解决方案:-)

标签: asp.net webforms telerik telerik-grid telerik-scheduler


【解决方案1】:
  1. 从 Telerik 原始演示中复制整个代码并与您的比较:http://demos.telerik.com/aspnet-ajax/scheduler/examples/draganddropintegration/defaultcs.aspx?product=grid

  2. 确保在网格的 ItemCommand 事件中创建哈希表。

  3. 如果返回正确的数据,请使用 GetDataKeyValue() 方法。您只需将所需的字段添加到 DataKeyNames 集合中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-31
    • 2014-11-09
    • 2011-12-05
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 2014-03-13
    • 2011-11-16
    相关资源
    最近更新 更多