我正在使用名为JuiceUI的ASP.NET Webforms的JQuery UI端口。
问题:
我有一个无序列表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 + " ";
}
}
答案 0 :(得分:0)
(我不再维护Juice UI,但我在我的分支上遇到了这个实现,Brew)
您遇到的问题是将数据发送回服务器。您可以检查排序的目标控件是否绑定了数据,并通过一些检查可以确定哪些字段是数据绑定并将其发回,但如果它只是一个元素列表呢?我可以将代码限制为特定的数据源(文本,html,属性,数据绑定等),或者尝试覆盖整个可能性的挑战 - 但这会变得很混乱。
我想要建议。