0

我的项目中有一个来自 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 中的错误还是我做错了什么?任何帮助表示赞赏。

4

1 回答 1

1
  1. 复制原始 Telerik 演示中的整个代码并将其与您的进行比较:http ://demos.telerik.com/aspnet-ajax/scheduler/examples/draganddropintegration/defaultcs.aspx?product=grid 。

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

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

于 2015-04-22T10:19:57.810 回答