0
我正嘗試在我的radgrid上使用拖拉重新排序。我的代碼對我來說很好(它觸發了RowDrop事件),但是我的客戶無法讓它工作,我已經排除故障,以顯示當他執行刪除操作時,args的DestDataItem屬性爲空,因此丟棄邏輯從不觸發?!?這裏是我的代碼:在Telerik Radrag上拖動重新排序
protected void questionGrid_RowDrop(object sender, GridDragDropEventArgs e)
{
if (e.DestDataItem != null)
{
int tempId = int.Parse(editingId.Value);
theTemplate = ent.SurveyTemplates.Where(i => i.Id == tempId).FirstOrDefault();
int id = int.Parse(e.DraggedItems[0]["Id"].Text);
SurveyQuestion draggedQuestion = ent.SurveyQuestions.Where(i => i.Id == id).FirstOrDefault();
List<SurveyQuestion> tempArray = theTemplate.Questions.OrderBy(i => i.Rank).ToList();
tempArray.Remove(draggedQuestion);
tempArray.Insert(e.DestDataItem.ItemIndex, draggedQuestion);
int j = 0;
foreach (SurveyQuestion sq in tempArray)
{
sq.Rank = j;
j++;
}
ent.SaveChanges();
questionGrid.Rebind();
}
else
{
Exceptions.LogException(new Exception("NULL DEST"));
}
}
它只是引用拖動的項目和新索引處的項目,並重新插入它的列表中翻出,然後將其更新每個項目的等級屬性,其新的索引和撲救。
爲什麼這對我而言並不適合他?這個服務器端代碼是否會受瀏覽器差異的困擾?
是什麼你的客戶放棄了這一行? [This thread](http://www.telerik.com/community/forums/aspnet-ajax/grid/radgrid-drag-amp-drop-with-detail-table.aspx)表示如果目標的DestDataItem爲null不是數據行。您可以通過處理OnRowDropping事件(在線程中說明)來防止發生這種情況。 – 2013-04-23 17:30:53
你能發表這個答案嗎?謝謝! – box86rowh 2013-04-23 17:40:05
很高興幫助:) – 2013-04-23 17:44:27