2017-03-15 16 views
1

私はASP.NETで新しいです 私のタスクはドラッグアンドドロップシステムを作成しています。 今のところ、スクリーンショットを見ると、ページの各要素に対して上下に使用しています。どのようにオブジェクトを注文するのと同じアイデアでドラッグアンドドロップを管理するのですか? Example imageASP.NETドラッグアンドドロップ

そして、これはコード

protected void lb_up_Command(object sender, CommandEventArgs e) 
{ 
    ChangeItemNumber(int.Parse(e.CommandArgument.ToString()), -1); 
} 
protected void lb_down_Command(object sender, CommandEventArgs e) 
{ 
    ChangeItemNumber(int.Parse(e.CommandArgument.ToString()), 1); 
} 
private void ChangeItemNumber(int id, int changeValue) 
{ 
    Dal dal = new Dal(); 
    var itemToChange = dal.GetSale(id); 
    Sale replacedLesson = null; 
    if (changeValue == -1) 
    { 
     for (int i = 0; i < rp_sales.Items.Count; i++) 
     { 
      if (((HiddenField)rp_sales.Items[i].FindControl("hf_id")).Value == id.ToString()) 
      { 
      replacedLesson = dal.GetSale(int.Parse(((HiddenField)rp_sales.Items[i - 1].FindControl("hf_id")).Value)); 
      break; 
      } 
     } 
    } 
    else 
    { 
     for (int i = 0; i < rp_sales.Items.Count; i++) 
     { 
      if (((HiddenField)rp_sales.Items[i].FindControl("hf_id")).Value == id.ToString()) 
      { 
       replacedLesson = dal.GetSale(int.Parse(((HiddenField)rp_sales.Items[i + 1].FindControl("hf_id")).Value)); 
       break; 
      } 
     } 
    //replacedLesson = dal.GetNextCategoryInLine((int)itemToChange.OrderNumber,chk_activeOnly.Checked); 
    } 

    ViewState["main"] = itemToChange.ID; 
    ViewState["sub"] = replacedLesson.ID; 

    var num = (int)itemToChange.OrderNumber; 
    itemToChange.OrderNumber = replacedLesson.OrderNumber; 
    replacedLesson.OrderNumber = num; 

    // NormelizeLessonOrder(); 
    dal.Save(); 
    LoadData(); 
} 

ASPXコード

<ItemTemplate> 
<asp:Literal runat="server" ID="lit_tableRow"></asp:Literal> 
<td> 
<asp:HiddenField runat="server" ID="hf_counter" /> 
<asp:HiddenField runat="server" ID="hf_id" /> 
<asp:LinkButton OnClientClick="showLoad();" Font-Size="XX-Large" runat="server" ID="lb_up" OnCommand="lb_up_Command" CommandArgument='<%# Eval("ID") %>'><span class="fa fa-2x fa-caret-up"></span></asp:LinkButton> 
<asp:LinkButton OnClientClick="showLoad();" Font-Size="XX-Large" runat="server" ID="lb_down" OnCommand="lb_down_Command" 
CommandArgument='<%# Eval("ID") %>'><span class="fa fa-2x fa-caret-down"></span></asp:LinkButton>&nbsp;&nbsp; 
</td> 
<td> 
<asp:Image runat="server" ID="img_logo" Height="50px" /> 
</td> 
<td> 
<asp:Label runat="server" ID="lbl_name" /><br /> 
<asp:Label runat="server" ID="lbl_Status"></asp:Label> 
</td> 
<td> 
<asp:Label runat="server" ID="lbl_Title" Font-Bold="true" /><br /> 
<asp:Label runat="server" ID="lbl_data" Font-Size="Small"></asp:Label> 
</td> 
<td> 
<asp:Label runat="server" ID="lbl_category"></asp:Label> 
</td> 
<td> 
<asp:Label runat="server" ID="lbl_totalSales"></asp:Label> 
</td> 
<td> 
<asp:Literal runat="server" ID="lit_view"></asp:Literal> 
</td> 
</tr> 
</ItemTemplate> 
+1

私はあなたのためにコードをフォーマットする瞬間を撮影してきました。私が何をしたのかを書き留めて、今後投稿する前にフォーマットする時間を取ってください。コードを読みやすくし、回答を受け取る可能性が高くなります。 – mason

+0

この変更は、ユーザーがページにアクセスするたびに反映されるべきですか?ポジションを保持しなければならないのですか?もしそうなら、 'drag'と' drop'オプションを持つ 'jquery-ui'を含めてみて、プラグインで利用可能なさまざまなイベントを使用してデータベースに注文を保存し、ユーザーが訪れるたびにデータベースに保存された注文番号でソートしてくださいページ.. –

+0

これをチェック! http://www.developer.com/lang/using-html5-drag-and-drop-in-asp.net.html、私はそれがあなたが必要と思うものだと思います。 –

答えて

1

はい、jQueryの-UIを使用してくださいです。以下のリンクはあなたのために役立つことができます:

http://www.elated.com/articles/drag-and-drop-with-jquery-your-essential-guide/

https://jqueryui.com/draggable/

https://jqueryui.com/droppable/

+0

しかし、これは効果的です。私はそれを落とすようにbtnを上下に持っているのと同じロジックが必要です。 –

+0

その他のリンクhttps://www.w3schools.com/html/html5_draganddrop.asp –

関連する問題