Я пытаюсь использовать переупорядочивание перетаскивания на моей радиосети. Код, который у меня хорошо работает для меня (он срабатывает при событии RowDrop), но мой клиент не может заставить его работать, и я решил устранить его, чтобы показать, что когда он делает это, свойство DestDataItem аргументов равно null, логика падения никогда не запускает?!? Вот мой код:Перетаскивание перетаскивания на Telerik Radgrid
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"));
}
}
Это просто ссылается на перетаскиваемый элемент и тянет его из списка пунктов и повторной вставки его в новый индекс, то он обновляет ранг свойства каждого элемента его нового индекса и спасает.
Почему это работает для меня, а не для него? Может ли этот код на стороне сервера быть обеспокоен различиями браузера?
Что такое ваш клиент опустил строку? [Этот поток] (http://www.telerik.com/community/forums/aspnet-ajax/grid/radgrid-drag-amp-drop-with-detail-table.aspx) указывает, что DestDataItem будет null, если целевой не является строкой данных. Это можно предотвратить, если обработать событие OnRowDropping (показано в потоке). –
можете ли вы разместить это как ответ? Благодаря! – box86rowh
Рад, что это помогло :) –