<?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>Απ: generate web controls</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/43319.aspx</link><pubDate>Tue, 08 Jul 2008 00:47:24 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:43319</guid><dc:creator>dimik</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/43319.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=43319</wfw:commentRss><description>Καλησπέρα παιδιά,&lt;br&gt;&lt;br&gt;Παραθέτω δυο καταπληκτικά (κατά την ταπεινή μου γνώμη) άρθρα για&lt;b&gt; "Viewstate and Page Life Cycle"&lt;/b&gt;.&lt;br&gt;&lt;br&gt;&lt;a href="http://www.codeproject.com/KB/aspnet/aspnetrequestarchitecture.aspx"&gt;http://www.codeproject.com/KB/aspnet/aspnetrequestarchitecture.aspx&lt;/a&gt;&lt;br&gt;(ASP.NET Internals: Request Architecture)&lt;br&gt;&lt;br&gt;και &lt;br&gt;&lt;br&gt;&lt;a href="http://www.codeproject.com/KB/aspnet/aspnetviewstatepagecycle.aspx"&gt;http://www.codeproject.com/KB/aspnet/aspnetviewstatepagecycle.aspx&lt;/a&gt;&lt;br&gt;(ASP.NET Internals: Viewstate and Page Life Cycle)&lt;br&gt;&lt;br&gt;Θεωρώ επίσης το τελευταίο σχόλιο του Mohamad άκρως σωστό:&lt;br&gt;&lt;i&gt;"If you are new to either of the topics, it is advised that you read this article more than once to fully grasp the idea."&lt;/i&gt;&lt;br&gt;</description></item><item><title>Απ: generate web controls</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/41895.aspx</link><pubDate>Sat, 10 May 2008 10:12:31 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:41895</guid><dc:creator>anjelinio</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/41895.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=41895</wfw:commentRss><description>Σίγουρα και πολύ λιγότερο over-engineered απο αυτό που πρότεινα εγώ &lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;br&gt;&lt;br&gt;Η βαρεμάρα πίστευα πάντα, σε κάνει καλύτερο προγραμματιστή - κυρίως γιατί κάποια στιγμή αρχίζεις να βαριέσαι να ξαναγράφεις τον ίδιο κώδικα ξανά και ξανά, σε καλό δρόμο είσαι άρα &lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-5.gif" alt="Wink" /&gt;&lt;br&gt;</description></item><item><title>Απ: generate web controls</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/41893.aspx</link><pubDate>Fri, 09 May 2008 23:07:56 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:41893</guid><dc:creator>koraki_g</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/41893.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=41893</wfw:commentRss><description>Τελικά κατέληξα στον πρώτο τρόπο όπου όλα γίνονται σε τρία βήματα, στο Init φοτρώνω όλα τα στοιχεία της σελίδας απο το Session, στη συνέχεια πιάνω όλα τα events και ενημερώνω το Session και στο PreRender σβήνω όσα δημιούργησα χωρίς να χρειάζονται και γεμίζω τα controls με τιμές, όσα δεν υπήρχαν στο ViewState.&lt;br&gt;&lt;br&gt;Είναι λίγο ανορθόδοξο αλλά βαρέθηκα να το κάνω με Datalist :D&lt;br&gt;&lt;br&gt;Ευχαριστώ για όλα,&lt;br&gt;koraki_g&lt;br&gt;</description></item><item><title>Απ: generate web controls</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/41865.aspx</link><pubDate>Thu, 08 May 2008 20:49:11 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:41865</guid><dc:creator>anjelinio</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/41865.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=41865</wfw:commentRss><description>ListView, DataView, something view ρε παιδί μου κάτι αντίστοιχο έχει και το απλό ASP.NET 2.0 φαντάζομαι &lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Y.Γ .. ευχαριστώ και για τη διαφήμιση &lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-2.gif" alt="Big Smile" /&gt;&lt;br&gt;</description></item><item><title>Απ: generate web controls</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/41864.aspx</link><pubDate>Thu, 08 May 2008 16:48:06 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:41864</guid><dc:creator>koraki_g</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/41864.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=41864</wfw:commentRss><description>Βασικά ακόμα δουλεύω σε .NET v.2.0 και επειδή δεν επιτρέπεται να αλλάξω δεν ξέρω αν γίνεται να χρησιμοποήσω το ListView Control.&lt;br&gt;&lt;br&gt;Ίσως να έχεις δίκιο και να μην χρειάζεται η δυναμική προσέγγιση που έκανα μέχρι τώρα, το θέμα είναι ότι θέλω να φορτώνω αντί για dropdownlist μάρκες αυτοκινήτων το UserControl1 και μέσα του φορτώνω το UserControl2 και θέλω να επιτρέπεται η προσθήκη μέσα στο UserControl1 κι άλλα UserControl2 αλλά και να μπορεί να προσθέτει μέσα στη σελίδα κι άλλα UserControl1.&lt;br&gt;&lt;br&gt;Θα το σκεφτώ απο μια άλλη διαφορετική ματιά πιο Web διότι αυτή είναι κλασική Windows Forms τακτική πιστεύω.&lt;br&gt;&lt;br&gt;Ευχαριστώ για το ενδιαφέρον,&lt;br&gt;koraki_g&lt;br&gt;&lt;br&gt;ΥΓ. : Αυτό το έκλεψα απο το blog σου επειδή μου άρεσε πολύ.&lt;br&gt;(Κάποιες φορές πιστεύω ότι αντικαθιστούμε την ψυχοθεραπεία με σιωπηλές κωδικογραφημένες κραυγές στο μηνυματάκι του MSN μας.&lt;br&gt;</description></item><item><title>Απ: generate web controls</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/41854.aspx</link><pubDate>Thu, 08 May 2008 00:52:29 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:41854</guid><dc:creator>anjelinio</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/41854.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=41854</wfw:commentRss><description>Α γειά σου ... τώρα μιλάς σωστά &lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;br&gt;&lt;br&gt;Υποθέτω τώρα ότι μετά τη μάρκα ακολουθεί μοντέλο κτλ κτλ και άλλα κριτήρια εξαρτόμενα απο την αρχική επιλογή σωστά; &lt;br&gt;&lt;br&gt;Οπότε, εγώ θα έφτιαχνα ένα DataSet με ένα DataTable το οποίο έχει Columns για κάθε υποκριτήριο, και θα το έκανα bind σε κάποιο ListView με template controls. Έτσι θα μπορούσες για κάθε row στο DataTable να έχεις το UI που χρειάζεσαι. &lt;br&gt;&lt;br&gt;Το DataSet μπορείς να το σώσεις σε ViewState, Session ή οπουδήποτε τελοσπάντων, και στο τέλος, όταν πατήσει το "Search" ο φίλος, να το περνάς σε κάποια μέθοδο η οποία αναλαμβάνει να φτιάξει το/τα queries σου απο τα rows. &lt;br&gt;&lt;br&gt;Αν την πρώτη φορά εκεί που δημιουργείς το DataSet &amp;amp; DataTable βάζεις κι ένα κενό row, θα έχεις έτοιμη την πρώτη γραμμή της αναζήτησης με κενά values, άρα και το "πρώτο" UI row για να ξεκινήσει ο χρήστης. &lt;br&gt;&lt;br&gt;Κι ούτε δυναμικά controls, ούτε τίποτα &lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;br&gt;&lt;br&gt;Πες μας πως πήγε αν ακολουθήσεις αυτή την οδό&lt;br&gt;</description></item><item><title>Απ: generate web controls</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/41851.aspx</link><pubDate>Wed, 07 May 2008 21:41:50 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:41851</guid><dc:creator>koraki_g</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/41851.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=41851</wfw:commentRss><description>Μάλιστα, έχεις δίκιο.&lt;br&gt;&lt;br&gt;Ένα παράδειγμα χρήσης θα μπορούσε να είναι το εξής :&lt;br&gt;&lt;br&gt;Η αναζήτηση διάφορων οχημάτων σε ένα ηλεκτρονικό κατάστημα, όπου αν θέλει κάποιος μπορεί να συμπεριλάβει διάφορες μάρκες στην αναζήτηση, οπότε διαλέγει απο τη λίστα την&amp;nbsp; πρώτη μάρκα επιλογής και στη συνέχεια αν θέλει πατάει το κουμπί "Add New" για να προσθέσει άλλη μια λίστα έτσι ώστε να έχει άλλη μια μάρκα οχήματος στην αναζήτηση.&lt;br&gt;&lt;br&gt;Θέλω η πρώτη λίστα αν είχε επιλέξει ο χρήστης "Opel" να παραμένει και να επιλέξει στη δεύτερη "Mercedes" οπότε έτσι να έχει δύο μάρκες όταν θα πατήσει το Search.&lt;br&gt;&lt;br&gt;Δεν ξέρω αν σε κατατόπισα...&lt;br&gt;</description></item><item><title>Απ: generate web controls</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/41850.aspx</link><pubDate>Wed, 07 May 2008 21:30:10 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:41850</guid><dc:creator>anjelinio</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/41850.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=41850</wfw:commentRss><description>Χμμ ... δε μας γράφεις όλο το σενάριο σου; Τι θες τελικά να κάνεις δηλαδή, κι όχι τα προβλήματα με τη λύση που σκέφτηκες; Απο ότι φαίνεται, η συγκεκριμένη λύση είναι .. προβληματική, αλλά κανείς δε μπορεί να πεί με σιγουριά χωρίς να ξέρει το πρόβλημα. Απο ότι φαίνεται όμως ως τώρα, προσπαθείς να ξανα-ανακαλύψεις διάφορους τροχούς ... &lt;br&gt;</description></item><item><title>Απ: generate web controls</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/41846.aspx</link><pubDate>Wed, 07 May 2008 20:32:33 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:41846</guid><dc:creator>koraki_g</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/41846.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=41846</wfw:commentRss><description>&lt;p&gt;Γεια και πάλι,&lt;/p&gt;&lt;p&gt;Το τελικό σχέδιο είναι κάπως έτσι : &lt;br&gt;&lt;/p&gt;&lt;p&gt;Θέλω να προσθέτω άλλο ένα DropDownList σε ένα panel&amp;nbsp; μόνο όταν ο χρήστης πατήσει το κουμπί "Add New" και να προσθέτω έναν event handler CheckedChanged στο control.&lt;/p&gt;
Επίσης θέλω να υπάρχει το viewstate απο κάθε dropdownlist που έχω ήδη προσθέσει απο προηγούμενα postback και να τα χρησιμοποιώ όταν πατηθεί το κουμπί "Submit" (ένα άλλο κουμπί).&lt;br&gt;Κατέληξα σε αυτή τη λύση η οποία δεν με ικανοποιεί όμως :&lt;br&gt;

&lt;br&gt;
&lt;p&gt;&lt;strong&gt;PageInit&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;pre class="coloredcode"&gt;&lt;span class="kwd"&gt;if&lt;/span&gt; (Session[&lt;span class="st"&gt;"countDDL"&lt;/span&gt;] == &lt;span class="kwd"&gt;null&lt;/span&gt;)&lt;br&gt;                Session[&lt;span class="st"&gt;"countDDL"&lt;/span&gt;] = 0;&lt;br&gt;            Session[&lt;span class="st"&gt;"countDDL"&lt;/span&gt;] = &lt;span class="kwd"&gt;int&lt;/span&gt;.Parse(Session[&lt;span class="st"&gt;"countDDL"&lt;/span&gt;].ToString()) + 1;&lt;br&gt;             &lt;span class="kwd"&gt;for&lt;/span&gt; (&lt;span class="kwd"&gt;int&lt;/span&gt; i = 0; i &amp;lt; &lt;span class="kwd"&gt;int&lt;/span&gt;.Parse(Session[&lt;span class="st"&gt;"countDDL"&lt;/span&gt;].ToString()); i++)&lt;br&gt;                {&lt;br&gt;                    DropDownList processes = &lt;span class="kwd"&gt;new&lt;/span&gt; DropDownList();&lt;br&gt;                    ListItem lsi = &lt;span class="kwd"&gt;new&lt;/span&gt; ListItem(&lt;span class="st"&gt;"Choose "&lt;/span&gt;);&lt;br&gt;                    processes.ID = &lt;span class="st"&gt;"processes"&lt;/span&gt; + i.ToString();&lt;br&gt;                    processes.Width = 150;&lt;br&gt;                    processes.Items.Add(lsi);&lt;br&gt;                    processes.AutoPostBack = &lt;span class="kwd"&gt;true&lt;/span&gt;;&lt;br&gt;                        FillList(processes);&lt;br&gt;&lt;br&gt;                    processes.SelectedIndexChanged += &lt;span class="kwd"&gt;new&lt;/span&gt; EventHandler(processes_SelectedIndexChanged);&lt;br&gt;                    pnlProcesses.Controls.Add(processes);&lt;br&gt;              }&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;Δημιουργώ και γεμίζω τα dropdownlists που υπάρχουν συν ένα. Το Viewstate δουλεύει μια χαρά αν έχουν το ίδιο ID.&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;PageLoad&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;pre class="coloredcode"&gt;Session[&lt;span class="st"&gt;"buttonAddNewPressed"&lt;/span&gt;] = &lt;span class="kwd"&gt;false&lt;/span&gt;;&lt;br&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Reset Session key.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;pre class="coloredcode"&gt;&lt;span class="kwd"&gt;protected void&lt;/span&gt; AddNewProcess_Click(&lt;span class="kwd"&gt;object&lt;/span&gt; sender, ImageClickEventArgs e)&lt;br&gt;        {&lt;br&gt;            Session[&lt;span class="st"&gt;"buttonAddNewPressed"&lt;/span&gt;] = &lt;span class="kwd"&gt;true&lt;/span&gt;;&lt;br&gt;        }&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;pre class="coloredcode"&gt;&lt;span class="kwd"&gt;protected void&lt;/span&gt; Page_PreRender(&lt;span class="kwd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;br&gt;        {&lt;br&gt;            &lt;span class="kwd"&gt;if&lt;/span&gt; ((&lt;span class="kwd"&gt;bool&lt;/span&gt;)Session[&lt;span class="st"&gt;"buttonAddNewPressed"&lt;/span&gt;] == &lt;span class="kwd"&gt;false&lt;/span&gt;)&lt;br&gt;            {&lt;br&gt;                pnlProcesses.Controls.RemoveAt(pnlProcesses.Controls.Count -1);&lt;br&gt;                Session[&lt;span class="st"&gt;"countDDL"&lt;/span&gt;] = &lt;span class="kwd"&gt;int&lt;/span&gt;.Parse(Session[&lt;span class="st"&gt;"countDDL"&lt;/span&gt;].ToString()) - 1;&lt;br&gt;            }&lt;br&gt;            &lt;br&gt;        }&lt;/pre&gt;
&lt;p&gt;Αν το κουμπί "Add New" δεν πατηθεί σβήνω το τελευταίο dropdownlist γιατί κάποιο άλλο event έγινε και μειώνω τον μετρητή των dropdownlist κατά ένα.&lt;br&gt;&lt;/p&gt;&lt;p&gt;Η ερώτησή μου είναι :&lt;/p&gt;&lt;p&gt;Υπάρχει καλύτερη λύση;&lt;/p&gt;&lt;p&gt;Μου φαίνεται λίγο περίεργο να δημιουργώ ένα control και μετά να το σβήνω...&lt;/p&gt;&lt;p&gt;Αυτό γίνεται διότι το "Add New" Event γίνεται μεταξύ Page_Load and PreRender αλλά και τα dropdownlist πρέπει να γίνουν μεταξύ αυτών των βημάτων για να γίνουν register οι handlers των dropdownlist.&amp;nbsp; &lt;/p&gt;
&lt;br&gt;Ευχαριστώ για το ενδιαφέρον απο όλους, &lt;br&gt;koraki_g&lt;br&gt;</description></item><item><title>Απ: generate web controls</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/41832.aspx</link><pubDate>Wed, 07 May 2008 04:06:48 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:41832</guid><dc:creator>anjelinio</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/41832.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=41832</wfw:commentRss><description>&lt;P&gt;Οκ, γρήγορη αναδρομή στο lifecycle μιας σελίδας ... &lt;/P&gt;
&lt;P&gt;Ένα WebForm, είναι στο server ενα object. Όταν "&lt;EM&gt;ξεκινάει&lt;/EM&gt;" ένα request - έρχεται δηλαδή η κλήση στο server - δημιουργείται ένα instance, και εκτελείται για να παράγει το τελικό αποτέλεσμα -&amp;gt; το html που θα επιστραφεί στο browser. Μετά, το instance πεθαίνει [ &lt;EM&gt;όχι απαραίτητα, αλλά θεώρησε το έτσι για τώρα&lt;/EM&gt; ]&lt;/P&gt;
&lt;P&gt;Κατά τη διάρκεια της εκτέλεσης της σελίδας, γράφεις κώδικα στο code behind για να πιάσεις κάποια events τα οποία πετάγονται, και μέσω των event handlers αυτών κάνεις ότι θες να κάνεις. Πάνω κάτω, η σειρά είναι η εξής:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;PreInit 
&lt;LI&gt;Init 
&lt;LI&gt;PreLoad 
&lt;LI&gt;Load 
&lt;LI&gt;&amp;lt;Event Handlers για τα controls σου&amp;gt; 
&lt;LI&gt;PreRender&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Αυτό έχει το ενδιαφέρον side-effect, ότι για να πιάσεις ένα event απο ένα control το οποίο έχει γίνει δυναμικά add στη σελίδα, πρέπει να κάνεις register τον αντίστοιχο event handler πρίν σκάσουν τα events απο controls - πριν το load δηλαδή. &lt;/P&gt;
&lt;P&gt;Δοκίμασε να κάνεις add τα controls σου στο Init, και εκεί register τους event handlers, κάθε φορά. Νομίζω έτσι θα σου παίξει. Αν το κάνεις στο PreRender, αυτά τα events απο το button σου δε θα πεταχτούν ... ποτέ. Μην ξεχνάς, κάθε καινούργιο request, είναι ένα καινούργιο instance της σελίδας το οποίο δεν ξέρει τίποτα για οτιδήποτε δυναμικό είχε το προηγούμενο request -&amp;nbsp;ειδικά δυναμικά controls και event handlers ! :D&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Καλή τύχη φίλε :)&lt;/P&gt;</description></item><item><title>Απ: generate web controls</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/41827.aspx</link><pubDate>Tue, 06 May 2008 23:10:15 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:41827</guid><dc:creator>koraki_g</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/41827.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=41827</wfw:commentRss><description>&lt;font face="Verdana"&gt;Επανέρχομαι για να ρωτήσω το εξής :&lt;br&gt;έχω βάλει στο PReRender&amp;nbsp; της σελίδας τον παρακάτω κώδικα:&lt;br&gt;&lt;br&gt;&amp;nbsp;if (Session["countDDL"] != null &amp;amp;&amp;amp; int.Parse(Session["countDDL"].ToString()) &amp;gt; 0)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; int.Parse(Session["countDDL"].ToString()); i++)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DropDownList dropDown1 = new DropDownList();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ListItem lsi = new ListItem("Επιλέξτε απο τα παρακατω");&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font face="Verdana"&gt;dropDown1 &lt;/font&gt;&lt;font face="Verdana"&gt;.ID = i.ToString();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font face="Verdana"&gt;dropDown1 &lt;/font&gt;&lt;font face="Verdana"&gt;.Width = 150;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font face="Verdana"&gt;dropDown1 &lt;/font&gt;&lt;font face="Verdana"&gt;.Items.Add(lsi);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font face="Verdana"&gt;dropDown1 &lt;/font&gt;&lt;font face="Verdana"&gt;.AutoPostBack = true;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Button bt = new Button();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bt.ID = "testbutton";&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bt.Text = "test";&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bt.Click += new EventHandler(bt_Click);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FillList(&lt;/font&gt;&lt;font face="Verdana"&gt;dropDown1 &lt;/font&gt;&lt;font face="Verdana"&gt;);&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font face="Verdana"&gt;dropDown1 &lt;/font&gt;&lt;font face="Verdana"&gt;.SelectedIndexChanged += new EventHandler(&lt;/font&gt;&lt;font face="Verdana"&gt;dropDown1&lt;/font&gt;&lt;font face="Verdana"&gt;_SelectedIndexChanged);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pnl&lt;/font&gt;&lt;font face="Verdana"&gt;dropDowns&lt;/font&gt;&lt;font face="Verdana"&gt;.Controls.Add(&lt;/font&gt;&lt;font face="Verdana"&gt;dropDown1 &lt;/font&gt;&lt;font face="Verdana"&gt;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font face="Verdana"&gt;pnl&lt;/font&gt;&lt;font face="Verdana"&gt;dropDowns&lt;/font&gt;&lt;font face="Verdana"&gt;.&lt;/font&gt;&lt;font face="Verdana"&gt;Controls.Add(bt);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;και έχω βάλει σε ένα κουμπί να αυξάνεται ο αριθμός του &lt;/font&gt;&lt;font face="Verdana"&gt;&lt;font face="Verdana"&gt;Session["countDDL"] κάθε φορά που το πατήσει ο χρήστης.&lt;br&gt;&lt;br&gt;Δυστυχώς δεν βλέπω φως με τα Events, δεν τρέχει κανένα.&lt;br&gt;&lt;br&gt;Μήπως πρέπει να κρατάω κάπου τα Controls πριν το PostBack; &lt;br&gt;Mήπως χάνεται το Event;&lt;/font&gt;&lt;br&gt;&lt;/font&gt;</description></item><item><title>Απ: generate web controls</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/41819.aspx</link><pubDate>Tue, 06 May 2008 18:39:39 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:41819</guid><dc:creator>Pak</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/41819.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=41819</wfw:commentRss><description>&lt;P&gt;Ωπς με πρόλαβε!&lt;/P&gt;</description></item><item><title>Απ: generate web controls</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/41818.aspx</link><pubDate>Tue, 06 May 2008 18:39:04 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:41818</guid><dc:creator>Pak</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/41818.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=41818</wfw:commentRss><description>&lt;P&gt;koraki_g το έχεις παρανοήσει λιγάκι. Το viewstate δεν αποθηκεύει τα controls που προσθέτεις στην σελίδα αλλά το viewstate τους. Μια σελίδα ξαναδημιουργείται από την αρχή κάθε φορά που την καλείς. Όπως φτιάχνεις εσύ δυναμικά ένα control στην σελίδα με τον ίδιο τρόπο φτιάχνει και η asp .net τα υπόλοιπα. Αν ήταν έτσι όπως τα λές τότε σε κάθε postback θα είχες +1 σε καθε control της σελίδας. Άρα αυτό που σου λέει ο anjelino είναι να προσθέτεις κάπου σε ένα χώρο αποθήκευσης(session, viewstate)&amp;nbsp;πόσα control χρειάζεται να δημιουργήσεις κάθε φορά.&lt;/P&gt;</description></item><item><title>Απ: generate web controls</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/41817.aspx</link><pubDate>Tue, 06 May 2008 18:33:18 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:41817</guid><dc:creator>koraki_g</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/41817.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=41817</wfw:commentRss><description>&lt;font face="Verdana"&gt;Σε ευχαριστώ πολύ!&lt;/font&gt;&lt;br&gt;</description></item><item><title>Απ: generate web controls</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/41815.aspx</link><pubDate>Tue, 06 May 2008 18:27:39 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:41815</guid><dc:creator>anjelinio</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/41815.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=41815</wfw:commentRss><description>Το viewstate υπάρχει για να αποθηκεύει δεδομένα, όχι controls. Η σελίδα ξέρει τα controls που πρέπει να κάνει render αποκλειστικά απο το .aspx αρχείο. Αυτό με τη σειρά του σημαίνει ότι οποιοδήποτε control προστεθεί "δυναμικά" απο εσένα, στο επόμενο postback η σελίδα το ξεχνάει. &lt;br&gt;&lt;br&gt;Πρέπει να τα ξαναπροσθέτεις όλα, κάθε φορά. Δυστυχώς ... αλλά έτσι είναι :)&lt;br&gt;&lt;br&gt;Όταν αρχίσεις να προσθέτεις buttons, θα πρέπει να κάνεις register τους event handlers τους με το χέρι, τη στιγμή που τα προσθέτεις κι αυτά στη σελίδα. &lt;br&gt;</description></item></channel></rss>