2016-06-13 10 views
0

Я использую библиотеку JS под названием Dragula. Я пытаюсь использовать его для реализации списка, содержимое которого создается с использованием ретранслятора. Моя проблема заключается в том, что даже если я прибегую к элементам (divs) списка, если я получу информацию для каждого из элементов списка в коде, используя элемент управления ретранслятора, он не знает, что произошло обращение, и может только вернуться Мне нужна информация о списках в том же порядке, в котором был заполнен ретранслятор.получить точное содержимое html, которое было создано с использованием ретранслятора

Есть ли способ получить содержимое html тега html, который сам создается с использованием ретранслятора и содержимое списка которого производится с использованием адаптера также.

Пример моей ситуации в коде:

HTML:

<asp:Repeater runat="server" ID="rpSearchResults"> 
     <ItemTemplate> 
      <section id="task-list" class="task-area_tasks-container taskorder-group"> 

       <asp:Repeater runat="server" ID="rpTaskGroup"> 
        <ItemTemplate> 

         <div id="task" class="task" runat="server"> 
          <span>some info needed retrieved in order</span> 
         </div> 

        </ItemTemplate> 
       </asp:Repeater> 

      </section> 
     </ItemTemplate> 
    </asp:Repeater> 

в браузере HTML (несортированный): You can tell the sorting of the list items by the second "ct##" part of the dynamically created id

Вы можете сказать, сортировку элементов списка по второму "ct ##" часть динамически созданного идентификатора

inbrowser HTML (отсортировано): enter image description here

Вы можете указать сортировку элементов списка второй частью «ct ##» динамически созданного идентификатора. Если вы заметили, они теперь отсортированы по-другому.

Проблема в том, что если я вызываю метод codebehind, я могу получить информацию из каждого списка ретрансляторов в первоначальном порядке (1-е изображение), но не в новом порядке (2-е изображение). Есть ли способ получить новый заказ? Заранее спасибо!

Это, как я получаю информацию о повторителе пунктов в настоящее время, но это будет только в оригинальном заказе:

For Each search As RepeaterItem In rpSearchResults.Items 
      Dim rpTaskGroup As Repeater = search.FindControl("rpTaskGroup") 

      For Each task As RepeaterItem In rpTaskGroup.Items 
       TaskOrderID = task.FindControl("task_order_id") 
       arTOIDs.Add(Convert.ToInt32(TaskOrderID.InnerText)) 
      Next 
     Next 
+0

Возможно, это слишком очевидно; но уверены ли вы, что эти элементы уже были отсортированы, когда вы пытаетесь получить к ним доступ? (Другими словами, если вы запустите это в обратном вызове onDocumentReady и в то же время начнется сортировка, возможно, что список не был отсортирован, когда ваш код будет выполнен). Можете ли вы привести пример того, когда вы вызываете свои методы и когда списки сортируются? – Annihlator

+0

Это порядок, в котором все происходит: 1) загружаются страницы и другие функции ondocumentready. 2) перетащите элементы списка, чтобы их упорядочить. 3) нажмите кнопку asp: linkbutton, чтобы вызвать функцию codebehind для получения информации о элементах списка. –

+0

. Я считаю, что причина для получения информации в исходном заказе заключается в том, что она использует ретранслятор для получения информации, а упорядочение элементов является статическим, как только элементы были прикреплены к ретранслятору, независимо от того, что происходит на стороне клиента. –

ответ

0

Я понял, работу вокруг проблемы, которые я имел. Это не самый чистый в мире, но насколько я знаю, это единственный способ сделать то, что я пытаюсь сделать в этом случае.

1) Я создал способ чтобы вызвать яваскрипта функцию, которая будет извлекать информацию в дивы в правильном порядке

2) Я хранящегося всю заказанную информацию дивы в переменной, я затем прикрепляется к элемент asp: HiddenField для последующего получения в коде позади

3) в конце функции javascript я вызываю щелчок по элементу asp: LinkButton, который запускает код за обработчиком событий. В этом случае обработчик I затем получил упорядоченную информацию из HiddenField и использовал ее по мере необходимости.

Надеюсь, это поможет любому, у кого были те же проблемы, что и я. Как я уже сказал, может быть, это не самый чистый или простой способ сделать это, но это единственный способ, который я смог найти после нескольких часов и часов поиска, и, если все сделано правильно, это может быть несколько чистым.