0

我正在使用 JQuery UI 端口连接到名为 JuiceUI 的 ASP.NET Webforms。

问题:

我有一个无序列表ul和一些列表元素li。我也有<juice:sortable>在客户端运行良好的。

现在,在对其进行排序之后,我可能想将排序后的列表保存到数据库中。我在互联网上进行了长时间的努力搜索以做到这一点,但无济于事。

没有办法将排序后的无序列表保存到表中?换句话说,我们能否将无序列表的序列“获取”到后端 C# 代码中?

这是我到目前为止所拥有的:

 <ul id="_Default" runat="server" ClientIDMode="Static" style="list-style-type:none;height:5%">
        <li class="ui-state-default" style="float:left; margin-left:10px"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item-1</li>
        <li class="ui-state-default" style="float:left; margin-left:10px"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item-2</li>
        <li class="ui-state-default" style="float:left; margin-left:10px"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item-3</li>
        <li class="ui-state-default" style="float:left; margin-left:10px"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item-4</li>
        <li class="ui-state-default" style="float:left; margin-left:10px"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item-5</li>
   </ul>
   <juice:sortable ID="Sortable1" TargetControlID="_Default" runat="server" 
        AutoPostBack="True" onreceive="Sortable1_Receive" onstop="Sortable1_Stop" 
        Tolerance="pointer"/>
    <asp:TextBox runat="server" ID="tbP" />
    <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Freeze" />

Button1_Click事件代码:

protected void Button1_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < _Default.Controls.Count; i++)
            {
                System.Web.UI.LiteralControl cntl = (System.Web.UI.LiteralControl)_Default.Controls[i];
                tbP.Text += cntl.Text + " ";
            }
        }
4

1 回答 1

0

(我不再维护 Juice UI,但我在我的 fork Brew上一直为这个实现而苦苦挣扎)

您遇到的问题是将哪些数据发送回服务器。您可以检查用于排序的目标控件是否绑定了数据,并且通过一些检查可以找出哪些字段是数据绑定的并将其发回,但是如果它只是一个元素列表呢?我可以将代码限制为特定的数据源(文本、html、属性、数据绑定等),或者尝试涵盖所有可能性——但这很混乱。

我愿意提出建议。

于 2013-05-08T12:38:50.430 回答