私は見習いをしています。私の上司は、リストを再注文可能にするという挑戦をしました。再注文可能リストの新しい注文を保存するにはどうしたらいいですか?
Jquery UIの使用Iveにはドラッグ&ドロップ機能が追加され、各項目のインデックスを示すラベルが追加されました。
問題は、新しいオーダーをデータベースに保存することができないということです。
はここ
<asp:Repeater ID="RepeaterWorkOrder" runat="server" OnLoad="Repeater1_PreRender" DataSourceID="sqlwork">
<HeaderTemplate>
<ul id="headingRow" style="list-style-type:none; font-weight:bold;">
<li>
<div class="row">
<div class="col-xs-3">Name</div>
<div class="col-xs-3">Address</div>
<div class="col-xs-2">Service</div>
<div class="col-xs-1">Van</div>
<div class="col-xs-1">Remaining Visits</div>
<div class="col-xs-2">Order of Work</div>
</div>
</li>
</ul>
<ul id="sortable">
</HeaderTemplate>
<ItemTemplate>
<li class="ui-state-default" style="list-style-type:none; margin-top: 10px;" >
<div class="row">
<div class="col-xs-3"><asp:Label ID="Label1" runat="server" Text='<%# DataBinder.Eval(Container, "ItemIndex") %>' Visible="true"/> - <asp:Label ID="LabelWorkSheetId" runat="server" Text='<%# Eval ("WorkItemId") %>' Visible="true"></asp:Label> <asp:Label ID="LabelFirstNameEdit" runat="server" Text='<%# Eval ("FirstName") %>'></asp:Label> <asp:Label ID="LabelSurnameEdit" runat="server" Text='<%# Eval ("Surname") %>'></asp:Label></div>
<div class="col-xs-3"><asp:Label ID="LabelAddressLine1Edit" runat="server" Text='<%# Eval ("AddressLine1") %>'></asp:Label>, <asp:Label ID="LabelTownEdit" runat="server" Text='<%# Eval ("Town") %>'></asp:Label>, <asp:Label ID="LabelPostCodeEdit" runat="server" Text='<%# Eval ("PostCode") %>'></asp:Label></div>
<div class="col-xs-2"><asp:Label ID="LabelServiceEdit" runat="server" Text='<%# Eval ("Service") %>'></asp:Label></div>
<div class="col-xs-1"><asp:Label ID="LabelVanEdit" runat="server" Text='<%# Eval ("VanRegistration") %>'></asp:Label></div>
<div class="col-xs-1"><asp:Label ID="LabelRemainingVisits" runat="server" Text='<%# Eval ("RemainingVisits") %>'></asp:Label></div>
<div class="col-xs-2"><asp:TextBox ID="TextBoxOrder" runat="server" Text='<%# Eval ("DayWorkOrder") %>' Width="100px"></asp:TextBox></div>
</div>
</li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
...リピーターだと、これは私がWebページをロードすると、私はアイテムのリストを取得し、使用して
<script>
function BindControlEvents() {
$("#sortable").sortable();
$("#sortable").disableSelection();
};
$(document).ready(function() {
BindControlEvents();
});
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(function() {
BindControlEvents();
});
</script>
のjQuery UIスクリプトです。
<asp:Label ID="Label1" runat="server" Text='<%# DataBinder.Eval(Container, "ItemIndex") %>' Visible="true"/>
リストは、私はその後、
にリストを並べ替える...のような
を表示されますので、彼らはそれぞれのインデックス番号を持っています2
が、私はページを更新するとき、それは再び元の順序をロードします。
何かを動かすと、そのアイテムのインデックス番号を変更するスクリプトが必要になると思います。
です。 Jquery UIには、並べ替えが完了したときにイベントを生成するメカニズムがあります。このイベントでは、並べ替えられたインデックスを送信し、このデータをサーバーに送信するajax関数を記述できます。サーバー側では、それを保存する必要があります。再読み込み時に、保存してそれに応じて表示した注文を読み込みます –