我的项目中有来自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中的错误还是我做错了什么?任何帮助表示赞赏。
答案 0 :(得分:1)
复制原始Telerik演示中的整个代码,并将其与您的代码进行比较:http://demos.telerik.com/aspnet-ajax/scheduler/examples/draganddropintegration/defaultcs.aspx?product=grid。
确保在网格的ItemCommand事件中创建哈希表。
如果返回正确的数据,请使用GetDataKeyValue()方法。您只需要将所需的字段添加到DataKeyNames集合。