<?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>Απ: GridView RowDataBound Event - Access more than one row</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/75435.aspx</link><pubDate>Thu, 29 May 2014 16:51:16 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:75435</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/75435.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=75435</wfw:commentRss><description>&lt;p&gt;Με μια πρόχειρη ματιά, αφού στην μέση μπαίνει το Ajax, το πρόβλημά σου είναι αρκετά πολύπλοκο, μιας και δεν μπορείς να χρησιμοποιήσεις το state της σελίδας για να αποθηκεύσεις πράγματα. Η λύση σε αυτό είναι είτε να χρησιμοποιήσεις το Session για να αποθηκεύσεις δεδομένα που θα ήθελες να έχεις πρόχειρα - την λίστα σου - είτε κάποιο singleton αντικείμενο που θα παίξει το ρόλο του persistence store...&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;&lt;/p&gt;&lt;p&gt;George J.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Απ: GridView RowDataBound Event - Access more than one row</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/75432.aspx</link><pubDate>Thu, 29 May 2014 00:12:50 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:75432</guid><dc:creator>gstam78</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/75432.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=75432</wfw:commentRss><description>&lt;p&gt;Ναι, αλλά σε επίπεδο column και όχι row, όπως στο παράδειγμα αυτό.&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:10pt;"&gt;Το κατάφερα ως έναν βαθμό διαλέγοντας στο rowdatabound την αμέσως προηγούμενη γραμμή και προσθέτοντας την επιλεγμένη τιμή του dropdownlist σε μια λίστα. Το θέμα είναι ότι θα πρέπει να βρω έναν τρόπο τώρα, ώστε να μην μπορεί ο χρήστης να ξαναεπιλέξει τις επιλεγμένες τιμές στα dropdownlist των προηγούμενων row, γιατί γίνεται ένα μπάχαλο μετά.&lt;/span&gt;&lt;/p&gt;</description></item><item><title>Απ: GridView RowDataBound Event - Access more than one row</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/75431.aspx</link><pubDate>Wed, 28 May 2014 21:22:26 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:75431</guid><dc:creator>Markos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/75431.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=75431</wfw:commentRss><description>&lt;p&gt;Δηλαδή, θέλεις να δημιουργήσεις cascading dropdownlist(s). Δύο παραδείγματα μπορείς να βρεις στα παρακάτω links:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.aspsnippets.com/Articles/Implement-AJAX-Cascading-DropDown-with-DropDownList-in-GridView-in-ASPNet.aspx"&gt;Implement AJAX Cascading DropDown with DropDownList in GridView in ASP.Net&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.aspdotnet-suresh.com/2011/11/how-to-implement-cascading-dropdownlist.html"&gt;How to implement cascading dropdownlist in gridview using asp.net &lt;/a&gt;&lt;br&gt;&lt;/li&gt;&lt;/ol&gt;Άμα κάνεις search στο Google πιθανόν να βρεις κι άλλες υλοποιήσεις.&lt;br&gt;</description></item><item><title>Απ: GridView RowDataBound Event - Access more than one row</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/75430.aspx</link><pubDate>Wed, 28 May 2014 20:34:23 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:75430</guid><dc:creator>gstam78</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/75430.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=75430</wfw:commentRss><description>&lt;p&gt;&lt;span style="font-size:10pt;"&gt;Καλησπέρα,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Ευχαριστώ καταρχάς για την απάντηση.&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:10pt;"&gt;Το θέμα είναι ότι οι τιμές κάθε row του grid εξαρτώνται από τις προηγούμενες. Ουσιαστικά προσπαθώ μέσω ενός gridview να υλοποιήσω ένα καλάθι αγορών. Όταν προσθέτω τις ίδιες τιμές σε κάθε row, δεν έχω πρόβλημα. Το πρόβλημα δημιουργείται όταν λαμβάνω υπόψιν μου τις προηγούμενες επιλεγμένες τιμές προκειμένου να δώσω την επιλογή στον χρήστη να επιλέξει μόνο από τις απομένουσες. Το ερώτημά μου είναι αν το dropdownlist θα πρέπει να γεμίζει στο rowdatabound event ή θα πρέπει να γεμίσει αρχικά με όλες τις τιμές στο πρώτο row και αφετέρου να γεμίζει σε κάθε προσθήκη νέου row λαμβάνοντας υπόψιν τις επιλεγμένες τιμές στα προηγούμενα. Στην απάντηση θα πρέπει να ληφθεί υπόψιν και το γεγονός ότι σε κάθε row του grid ο χρήστης μέσω του dropdownlist μπορεί να επιλέγει το item που θέλει και την ποσότητα και αυτόματα να ενημερώνεται η τελική του τιμή (μέσω PostBack).&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Ευχαριστώ.&amp;nbsp;&lt;/p&gt;</description></item><item><title>Απ: GridView RowDataBound Event - Access more than one row</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/75429.aspx</link><pubDate>Wed, 28 May 2014 16:22:21 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:75429</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/75429.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=75429</wfw:commentRss><description>&lt;p&gt;Καλημέρα,&lt;/p&gt;&lt;p&gt;Όχι, το event σου&amp;nbsp;δίνει πρόσβαση μόνο στη γραμμή&amp;nbsp;για την οποία σηκώθηκε το&amp;nbsp;event.&lt;/p&gt;&lt;p&gt;Αν θέλεις να κάνεις κάτι που θα έχει να κάνει με όλες τις γραμμές του gridview σου, το καλύτερο είναι να έχεις μια ακολουθία που θα τρέχει στο επίπεδο της σελίδας/control, παρά του event. Πχ. Θα μπορούσες με το binding του viewgrid να έκανες initialize την λίστα σου, και μετά μέσα στο rowdatabound event, να την διόρθωνες και να την έβαζες στο dropbox που την χρειάζεσαι. Η λίστα ζει έξω από το rowdatabound event, και έτσι οι επαναλήψεις του, διορθώνουν κάθε φορά την λίστα και την προσθέτουν στο control της γραμμής.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;George J.&amp;nbsp;&lt;/p&gt;</description></item><item><title>GridView RowDataBound Event - Access more than one row</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/75425.aspx</link><pubDate>Wed, 28 May 2014 01:05:42 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:75425</guid><dc:creator>gstam78</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/75425.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=75425</wfw:commentRss><description>&lt;p&gt;Καλησπέρα σας,&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size:10pt;"&gt;Θα ήθελα να ρωτήσω το εξής: Υπάρχει η δυνατότητα μέσα από το RowDataBound event ενός GridView να προσπελαύνω περισσότερα από ένα rows τη φορά; Βασικά όταν πάω να προσπελάσω το δεύτερο row (GridView1.Rows[1]) μου βγάζει το μήνυμα λάθους "index out of range". Για να γίνω πιο σαφής προσπαθώ να κάνω populate ένα dropdownlist control ανά GridViewRow. To populate γίνεται εξετάζοντας τις προηγούμενες τιμές στο dropdownlist ξεκινώντας από την πρώτη γραμμή του GridView. Σκοπός είναι σε κάθε νέο row του GridView το DropDownList να περιλαμβάνει μόνο τις απομένουσες τιμές , αφαιρώντας κάθε φορά αυτές που έχουν γίνει selected σε προηγούμενα row.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size:10pt;"&gt;&amp;nbsp;Ενδεικτικός κώδικας, ο οποίος ελέγχει τις τιμές των dropdownlist των προηγούμενων row (όταν το RowIndex παίρνει τιμή μεγαλύτερη του 0&amp;nbsp;&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;βγαίνει το μήνυμα λάθους "index out of range")&lt;/span&gt;&lt;span style="font-size:10pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;br&gt;

private IList &amp;lt;items&amp;gt; CheckPreviousRecordsForAddedItems() 
{ 
   int rowIndex = 0; 
   IList &amp;lt;items&amp;gt; itms = items.GetItems(); 
   IList&amp;lt;items&amp;gt;&amp;nbsp;addtoBasket = new List&amp;lt;items&amp;gt;&amp;nbsp;(); 
   if (Session["CurrentTable"] != null) 
   { 
      DataTable dt = (DataTable)Session["CurrentTable"]; 
      if (dt.Rows.Count &amp;gt; 0) 
      { 
          for (int i = 0; i &amp;lt; dt.Rows.Count-1; i++) 
          { 
              DropDownList ddlItem =                                               (DropDownList)GridView1.Rows[rowIndex].Cells[2].FindControl("ddlItem"); ddlItem.SelectedValue =     dt.Rows&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-55.gif" alt="Idea" /&gt;["ItemID"].ToString(); 
              ddlItem.SelectedIndex = Convert.ToInt32(dt.Rows&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-55.gif" alt="Idea" /&gt;["ID"]); 
              items item = items.GetItem(itms, Convert.ToInt32(ddlItem.SelectedValue)); 
              if (item != null) 
              { 
                addtoBasket.Add(item); 
              } 
          } 
          rowIndex++; 
       } 
     } 
   } 
   return addtoBasket; 
}&lt;/p&gt;&lt;p&gt;Κάθε βοήθεια είναι ευπρόσδεκτη.&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:10pt;"&gt;Ευχαριστώ εκ των προτέρων.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;</description></item></channel></rss>