获得使用转发器生成的确切html内容

时间:2016-06-13 13:09:53

标签: javascript html sorting repeater

我正在使用名为Dragula的JS库。我试图用它来实现一个列表,其内容是使用转发器生成的。我的问题是,即使我使用列表的项目(div),如果我使用转发器控件获取代码隐藏中的每个列表项的信息,它也不知道已经发生了求助,并且只能返回列出项目信息的顺序与转发器的填充顺序相同。

有没有办法获取html标签的html内容,该标签本身是使用转发器生成的,其列表内容也是使用reapter生成的。

我的代码情况示例:

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

您可以通过动态创建的ID的第二个“ct ##”部分告诉列表项的排序

inbrowser HTML(已排序): enter image description here

您可以通过动态创建的id的第二个“ct ##”部分来告诉列表项的排序。如果您注意到,现在它们的排序方式不同。

问题是,如果我触发代码隐藏方法,我可以按原始顺序(第一张图片)从每个转发器列表中获取信息,但不能以新顺序(第二张图片)获取。我有什么方法可以检索新订单吗?提前谢谢!

这就是我目前获取转发器项目信息的方式,但这只能按原始顺序获取:

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

1 个答案:

答案 0 :(得分:0)

我找到了解决问题的方法。它不是世界上最干净的,但据我所知,这是我在这种情况下做的事情的唯一方法。

1)我创建了一种触发javascript函数的方法,该函数将以正确的顺序检索div中的信息

2)我将div的所有有序信息存储在一个变量中,然后我将其附加到一个asp:HiddenField元素,以便稍后在后面的代码中检索

3)在javascript函数结束时,我触发了一个asp:LinkBut​​ton元素的单击,它会触发事件处理程序后面的代码。在这个事件处理程序中,我然后从HiddenField中检索了有序信息并根据需要使用它。

希望这可以帮助那些遇到与我一样的问题的人。正如我所说,也许不是最干净或最简单的方法,但这是我经过数小时搜索后才能找到的唯一方法,如果做得好,它可能会有些干净。