<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>ASP.NET WebForms</title><link>https://www.dotnetzone.gr:443/cs/forums/13/ShowForum.aspx</link><description>Θέματα για web εφαρμογές, σε ASP.NET WebForms</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: Persist περιεχομένων ReorderList με LINQ to SQL DataSource</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/48084.aspx</link><pubDate>Tue, 03 Feb 2009 01:50:17 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:48084</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/48084.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=48084</wfw:commentRss><description>&lt;P&gt;Άλλαξε το&lt;/P&gt;
&lt;P&gt;Dim itemcol = (From rec In db.SampleCategories Select name = rec.description, id = rec.id, sort = rec.ord)&lt;BR&gt;Me.ReorderList1.DataSource = itemcol.ToList()&lt;/P&gt;
&lt;P&gt;σε&lt;/P&gt;
&lt;P&gt;Dim itemcol = (From rec In db.SampleCategories).ToList()&lt;BR&gt;Me.ReorderList1.DataSource = itemcol&lt;/P&gt;
&lt;P&gt;και τώρα είναι typed...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;George J.&lt;BR&gt;&lt;/P&gt;</description></item><item><title>Απ: Persist περιεχομένων ReorderList με LINQ to SQL DataSource</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/48078.aspx</link><pubDate>Mon, 02 Feb 2009 21:32:56 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:48078</guid><dc:creator>cap</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/48078.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=48078</wfw:commentRss><description>Και μια άλλη απορία: Αντε και έσωσα το list (of anonymous type) στο session, πώς το παίρνω πάλι πίσω; Ως object! Αρα, λοιπον, μάλλον χρειάζομαι και ενδιάμεσο class (ένα data carrier) για να κρατάω τα στοιχεία, ε; &lt;br /&gt;&lt;br /&gt;</description></item><item><title>Απ: Persist περιεχομένων ReorderList με LINQ to SQL DataSource</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/48068.aspx</link><pubDate>Sun, 01 Feb 2009 21:43:14 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:48068</guid><dc:creator>cap</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/48068.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=48068</wfw:commentRss><description>&lt;P&gt;Η αλήθεια είναι οτι το σκέφτηκα αυτό. Ψάχνοντας σε διάφορα forums είδα οτι και άλλοι πηγαίνουν με το ίδιο approach. Απλά αναρωτιόμουν αν υπάρχει πιό αποτελεσματικός τρόπος να το κάνω.&lt;/P&gt;
&lt;P&gt;Επιπρόσθετα, δεν ξέρω ΤΙ να συγκρίνω μεταξύ του itemcol και του reorderListCollection μια και δεν φαίνεται το δεύτερο να έχει καμία σύνδεση με το actual datasource. Ουτε καν ids. Αυτό που βλέπω να κάνουν άλλοι είναι να τα "δένουν" πάντα πάνω στο event ReorderItem και όχι να τα συγκρίνουν στο τέλος. Κάτι πρέπει να παραλείπω, αλλά δεν ξέρω τι.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Απ: Persist περιεχομένων ReorderList με LINQ to SQL DataSource</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/48067.aspx</link><pubDate>Sun, 01 Feb 2009 21:32:17 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:48067</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/48067.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=48067</wfw:commentRss><description>&lt;P&gt;Γιατί δεν βάζεις το itemcol κάπου: Session, ViewState, ApplicationCache, όπου; &lt;STRONG&gt;&lt;U&gt;ΑΦΟΥ&lt;/U&gt;&lt;/STRONG&gt; το κάνεις ReadOnly.&lt;/P&gt;
&lt;P&gt;Μετά μπορείς να συγκρίνεις το πριν (itemcol) και το μετά (reorderListCollection) και να φτιάξεις τα αντίστοιχα Updates προς την βάση;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;George J.&lt;BR&gt;&lt;/P&gt;</description></item><item><title>Persist περιεχομένων ReorderList με LINQ to SQL DataSource</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/48064.aspx</link><pubDate>Sun, 01 Feb 2009 20:17:12 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:48064</guid><dc:creator>cap</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/48064.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=48064</wfw:commentRss><description>&lt;P&gt;Επειδή ίσως κάποιος συνάδελφος να το έχει ήδη κάνει, αναζητώ τον καλύτερο δυνατό τρόπο να κάνω persist σε ΜΙΑ κίνηση τα δεδομένα ενός ReorderList στα οποία έχω κάνει bind τα αποτελέσματα ενός linq to sql query. Το persist δεν θέλω να γίνεται ανά reorder action, αλλά μια και καλή με το κλικ ενός hyperlink. Δεν με ενδιαφέρουν θέματα concurrency σε αυτό το context που δουλεύω, οπότε θέλω να αφήσω το χρήστη να αλλάξει τη σειρά όπως θέλει και να τη "γράψει" στο τέλος στη βάση (as opposed to να κάνω εγγραφή κάθε φορά που γίνεται ένα reorder).&lt;/P&gt;
&lt;P&gt;Εξηγώ με μεγαλύτερη λεπτομέρεια: Εδώ φορτώνω τα περιεχόμενα του ReorderList. Μην δίνετε σημασία στο πως καλώ το datacontext, έχω φτιαξει ένα singleton wrapper για να μην το κάνω initialize συνέχεια.&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:black;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;Protected&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;Sub&lt;/SPAN&gt; Page_Load(&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;ByVal&lt;/SPAN&gt; sender &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;As&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;Object&lt;/SPAN&gt;, &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;ByVal&lt;/SPAN&gt; e &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;As&lt;/SPAN&gt; System.EventArgs) &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;Handles&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;Me&lt;/SPAN&gt;.Load&lt;BR&gt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;If&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;Not&lt;/SPAN&gt; Page.IsPostBack &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;Then&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;Dim&lt;/SPAN&gt; db &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;As&lt;/SPAN&gt; TestContextDataContext &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; SingletonDataContextWrapper.GetInstance.DataContext&lt;BR&gt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;Dim&lt;/SPAN&gt; itemcol &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; (From rec &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;In&lt;/SPAN&gt; db.SampleCategories &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;Select&lt;/SPAN&gt; name &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; rec.&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;description&lt;/SPAN&gt;, id &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; rec.id, sort &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; rec.ord)&lt;BR&gt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;Me&lt;/SPAN&gt;.ReorderList1.DataSource &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; itemcol.ToList()&lt;BR&gt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;Me&lt;/SPAN&gt;.ReorderList1.DataBind()&lt;BR&gt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;End&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;If&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;End&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;Sub&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Εξυπακούεται φυσικά οτι το πεδιό sort είναι το πεδίο με το οποίο ορίζεται η σειρά εμφάνισης. Δεν έχω orderby στο συγκεκριμένο κώδικα κακώς, απλά επειδή είναι test table τα έχω ούτως η άλλως καταχωρήσει με τη σειρά (για να μην με βρίσετε το αναφέρω) :) &lt;/P&gt;
&lt;P&gt;Τώρα, αφού ο χρήστης κάνει ο,τι κάνει με το ReorderList, έχω ένα LinkButton που θα πρέπει με το που κάνουμε κλικ να κάνει persist στη database τη νέα σειρά πραγμάτων. Και εδώ αρχίζουν οι ερωτήσεις:&lt;/P&gt;
&lt;P&gt;- Δεν μπορώ να πάρω το datasource πίσω από το reorderlist. (Φυσικό, αφού γίνεται postback με το κλικ στο LinkButton). Αρα, δεν έχω πρόσβαση στο list που του έδωσα.&lt;/P&gt;
&lt;P&gt;- Εχω πρόσβαση στο reorderListItemCollection, αλλά δεν βλέπω να περιέχει ΚΑΜΙΑ πληροφορία για τα underlying objects. Αρα τι να το κάνω;&lt;/P&gt;
&lt;P&gt;- Ο μόνος τρόπος να κάνω batch update τελικά είναι να χρησιμοποιήσω το ReorderItem event οπου το μόνο που γνωρίζω είναι το old/new index και να αλλάζω manually τη σειρά των underlying αντικειμένων, εφαρμόζοντας μόνο ένα db.SubmitChanges στο LinkButton1_Click μου;&lt;/P&gt;
&lt;P&gt;Βασικά έχω μπερδευτεί λίγο. Οποιαδήποτε βοήθεια είναι ευπρόσδεκτη.&lt;/P&gt;
&lt;P&gt;EDIT: Δεν υλοποιώ add/delete functionality, το μόνο που θέλω να αλλάζω είναι το ordering υπαρχόντων records, το οποίο εκφράζεται από ένα int πεδίο στη βάση.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item></channel></rss>