<?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>rousso's .net blog</title><link>https://www.dotnetzone.gr:443/cs/blogs/rousso/default.aspx</link><description>the .net blog of Yannis Roussochatzakis</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Can't change access modifiers when inheriting from Generic Types.</title><link>https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/2008/02/21/can-t-change-access-modifiers-when-inheriting-from-generic-types.aspx</link><pubDate>Fri, 22 Feb 2008 01:49:34 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:40388</guid><dc:creator>rousso</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/rousso/comments/40388.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/rousso/commentrss.aspx?PostID=40388</wfw:commentRss><description>&lt;p&gt;Well I might be silly, but I had not run-up to this one yet. Until just now: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;You cannot change the accessibility level of a class member by means of hiding when inheriting from a generic type.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Consider this example. A simple console application using two classes: &lt;strong&gt;MyList&lt;/strong&gt; inherits from &lt;strong&gt;List&amp;lt;int&amp;gt;&lt;/strong&gt; and &lt;strong&gt;My2ndList&lt;/strong&gt; inherits from &lt;strong&gt;MyList&lt;/strong&gt;. Generic type &lt;strong&gt;List&amp;lt;T&amp;gt;&lt;/strong&gt; has a public method named &lt;strong&gt;Add&lt;/strong&gt; that is not declared as virtual. &lt;/p&gt;  &lt;p&gt;My intention was to &lt;strong&gt;completely hide&lt;/strong&gt; the base implementation of the Add method in my derived class. In other words, let's assume that I want MyList class to &lt;strong&gt;not&lt;/strong&gt; expose an &lt;strong&gt;Add&lt;/strong&gt; method. What one would normally do in this case, would be to hide the method by using the &lt;strong&gt;new modifier&lt;/strong&gt; and changing its access modifier &lt;strong&gt;from public to private&lt;/strong&gt; like I tried to do in line &lt;strong&gt;32&lt;/strong&gt; of the code snippet that follows.&lt;/p&gt;  &lt;p&gt;Well. Guess what. &lt;strong&gt;This does not work&lt;/strong&gt; if you are inheriting from a Generic Type. Try the code bellow then try to play around with the access modifiers in lines &lt;strong&gt;32&lt;/strong&gt; and &lt;strong&gt;47&lt;/strong&gt;. Although I would normally assume that the code bellow would not even compile, &lt;strong&gt;it does&lt;/strong&gt;! &lt;/p&gt;  &lt;div style="border-right:gray 1px solid;padding-right:4px;border-top:gray 1px solid;padding-left:4px;font-size:8pt;padding-bottom:4px;margin:20px 0px 10px;overflow:auto;border-left:gray 1px solid;width:97.5%;cursor:text;max-height:200px;line-height:12pt;padding-top:4px;border-bottom:gray 1px solid;font-family:consolas, 'Courier New', courier, monospace;background-color:#f4f4f4;"&gt;   &lt;div style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;     &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; System;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   2:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   3:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; System.Text;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   4:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   5:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;namespace&lt;/span&gt; TestGenerics&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   6:&lt;/span&gt; {&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   7:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; Program&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   8:&lt;/span&gt;     {&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;   9:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;static&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; Main(&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt;[] args)&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  10:&lt;/span&gt;         {&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  11:&lt;/span&gt;             MyList myList = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; MyList();&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  12:&lt;/span&gt;             myList.Add(1);&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  13:&lt;/span&gt;             myList.Add(2);&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  14:&lt;/span&gt;             myList.Add(3);&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  15:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  16:&lt;/span&gt;             myList.Print();&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  17:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  18:&lt;/span&gt;             Console.WriteLine(&lt;span style="color:#006080;"&gt;&amp;quot;Now the 2nd List&amp;quot;&lt;/span&gt;);&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  19:&lt;/span&gt;             &lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  20:&lt;/span&gt;             My2ndList my2ndList = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; My2ndList();&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  21:&lt;/span&gt;             my2ndList.Add(1);&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  22:&lt;/span&gt;             my2ndList.Add(2);&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  23:&lt;/span&gt;             my2ndList.Add(3);&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  24:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  25:&lt;/span&gt;             my2ndList.Print();&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  26:&lt;/span&gt;         }&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  27:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  28:&lt;/span&gt;     }&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  29:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  30:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; MyList : List&amp;lt;&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;&amp;gt;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  31:&lt;/span&gt;     {&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  32:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; Add(&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; item)&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  33:&lt;/span&gt;         {&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  34:&lt;/span&gt;             item *= 10;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  35:&lt;/span&gt;             &lt;span style="color:#0000ff;"&gt;base&lt;/span&gt;.Add(item);&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  36:&lt;/span&gt;         }&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  37:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  38:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; Print()&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  39:&lt;/span&gt;         {&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  40:&lt;/span&gt;             &lt;span style="color:#0000ff;"&gt;foreach&lt;/span&gt; (&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; item &lt;span style="color:#0000ff;"&gt;in&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;this&lt;/span&gt;)&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  41:&lt;/span&gt;                 Console.WriteLine(item.ToString());&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  42:&lt;/span&gt;         }&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  43:&lt;/span&gt;     }&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  44:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  45:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;class&lt;/span&gt; My2ndList : MyList&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  46:&lt;/span&gt;     {&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  47:&lt;/span&gt;         &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; Add(&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; item)&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  48:&lt;/span&gt;         {&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  49:&lt;/span&gt;             item *= 100;&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  50:&lt;/span&gt;             &lt;span style="color:#0000ff;"&gt;base&lt;/span&gt;.Add(item);&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  51:&lt;/span&gt;         }&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:#f4f4f4;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  52:&lt;/span&gt;     }&lt;/pre&gt;

    &lt;pre style="padding-right:0px;padding-left:0px;font-size:8pt;padding-bottom:0px;margin:0em;overflow:visible;width:100%;color:black;border-top-style:none;line-height:12pt;padding-top:0px;font-family:consolas, 'Courier New', courier, monospace;border-right-style:none;border-left-style:none;background-color:white;border-bottom-style:none;"&gt;&lt;span style="color:#606060;"&gt;  53:&lt;/span&gt; }&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;So why am I posting about this? &lt;/p&gt;

&lt;p&gt;Well... I didn't come across any comments on the subject on the Internet for the little I looked around and I thought it was an interesting thing to talk about.&lt;/p&gt;

&lt;p&gt;If you know of any links discussing the subject and explaining the internals of the compiler or generics implementation in C#, then by all means &lt;strong&gt;please do leave a comment&lt;/strong&gt; to this post.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If you'd like to copy/paste the code above then &lt;/em&gt;&lt;a href="http://rafb.net/p/qpqQZ986.html" target="_blank"&gt;&lt;em&gt;go get it here&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=40388" width="1" height="1"&gt;</description></item><item><title>Multiple calls to RegisterOnSubmitStatement and Client-Side Validation</title><link>https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/2006/12/02/21568.aspx</link><pubDate>Sun, 03 Dec 2006 05:45:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:21568</guid><dc:creator>rousso</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/rousso/comments/21568.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/rousso/commentrss.aspx?PostID=21568</wfw:commentRss><description>&lt;P&gt;Ok! Here is a new thing&amp;nbsp;I discovered yet again the hard way...&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;In short:&lt;/STRONG&gt; Do not call Page.ClientScript.RegisterOnSubmitStatement after the Page Load event.&lt;/P&gt;
&lt;P&gt;(What?!)&lt;/P&gt;
&lt;P&gt;Well yes! It's not under all circumstances that you can notice the difference but it's there and it's major!&lt;/P&gt;
&lt;P&gt;I do not really wan to describe this, so I 'll take you though it with &lt;STRONG&gt;an example&lt;/STRONG&gt;:&lt;/P&gt;
&lt;P&gt;Let's say you have an aspx page. The page has two controls in it. For simplicity lets make those controls UserControls. The controls are pretty simple: just a&amp;nbsp;TextBox and a&amp;nbsp;RequiredFieldValidator&amp;nbsp;in each of them. &lt;/P&gt;
&lt;P&gt;So there you have it:&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Control A&lt;/STRONG&gt; (let's call it OnSubmitControlA): &lt;/P&gt;



&lt;PRE class=csharpcode&gt;&lt;SPAN class=asp&gt;&amp;lt;%@ Control Language="C#" AutoEventWireup="true" CodeFile="OnSubmitControlA.ascx.cs" Inherits="OnSubmitControlA" %&amp;gt;&lt;/SPAN&gt;
&lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;asp:TextBox&lt;/SPAN&gt; &lt;SPAN class=attr&gt;ID&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="TextBox1"&lt;/SPAN&gt; &lt;SPAN class=attr&gt;runat&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="server"&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;/&amp;gt;&lt;/SPAN&gt;
&lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;asp:RequiredFieldValidator&lt;/SPAN&gt; &lt;SPAN class=attr&gt;ID&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="RequiredFieldValidator1"&lt;/SPAN&gt; &lt;SPAN class=attr&gt;runat&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="server"&lt;/SPAN&gt; &lt;SPAN class=attr&gt;ControlToValidate&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="TextBox1"&lt;/SPAN&gt; &lt;SPAN class=attr&gt;ErrorMessage&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="RequiredFieldValidator"&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;/&amp;gt;&lt;/SPAN&gt;
&lt;/PRE&gt;
&lt;P&gt;and the code file:&lt;/P&gt;



&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;public&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;partial&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;class&lt;/SPAN&gt; OnSubmitControlA : System.Web.UI.UserControl
{
   &lt;SPAN class=kwrd&gt;protected&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;override&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;void&lt;/SPAN&gt; OnPreRender(EventArgs e)
   {
      Page.ClientScript.RegisterOnSubmitStatement(&lt;SPAN class=kwrd&gt;this&lt;/SPAN&gt;.GetType(), &lt;SPAN class=str&gt;"DoingSomething"&lt;/SPAN&gt;, &lt;SPAN class=str&gt;"alert('This alert is registered by OnSubmitControlA');"&lt;/SPAN&gt;);
      &lt;SPAN class=kwrd&gt;base&lt;/SPAN&gt;.OnPreRender(e);
   }
}
&lt;/PRE&gt;
&lt;P&gt;&lt;STRONG&gt;Control B&lt;/STRONG&gt; (let's call it OnSubmitControlB): 



&lt;/P&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=asp&gt;&amp;lt;%@ Control Language="C#" AutoEventWireup="true" CodeFile="OnSubmitControlB.ascx.cs" Inherits="OnSubmitControlB" %&amp;gt;&lt;/SPAN&gt;
&lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;asp:TextBox&lt;/SPAN&gt; &lt;SPAN class=attr&gt;ID&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="TextBox1"&lt;/SPAN&gt; &lt;SPAN class=attr&gt;runat&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="server"&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;/&amp;gt;&lt;/SPAN&gt;
&lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;asp:RequiredFieldValidator&lt;/SPAN&gt; &lt;SPAN class=attr&gt;ID&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="RequiredFieldValidator1"&lt;/SPAN&gt; &lt;SPAN class=attr&gt;runat&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="server"&lt;/SPAN&gt; &lt;SPAN class=attr&gt;ControlToValidate&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="TextBox1"&lt;/SPAN&gt; &lt;SPAN class=attr&gt;ErrorMessage&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="RequiredFieldValidator"&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;/&amp;gt;&lt;/SPAN&gt;
&lt;/PRE&gt;
&lt;P&gt;and the code file:&lt;/P&gt;



&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;public&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;partial&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;class&lt;/SPAN&gt; OnSubmitControlB : System.Web.UI.UserControl
{
   &lt;SPAN class=kwrd&gt;protected&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;override&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;void&lt;/SPAN&gt; OnPreRender(EventArgs e)
   {
      Page.ClientScript.RegisterOnSubmitStatement(&lt;SPAN class=kwrd&gt;this&lt;/SPAN&gt;.GetType(), &lt;SPAN class=str&gt;"DoingSomethingElse"&lt;/SPAN&gt;, &lt;SPAN class=str&gt;"alert('This alert is registered by OnSubmitControlB');"&lt;/SPAN&gt;);
      &lt;SPAN class=kwrd&gt;base&lt;/SPAN&gt;.OnPreRender(e);
   }
}
&lt;/PRE&gt;
&lt;P&gt;And finally &lt;STRONG&gt;the page&lt;/STRONG&gt; itself: 



&lt;/P&gt;&lt;PRE class=csharpcode&gt;&lt;SPAN class=asp&gt;&amp;lt;%@ Page Language="C#" AutoEventWireup="true" CodeFile="OnSubmitTest.aspx.cs" Inherits="OnSubmitTest" %&amp;gt;&lt;/SPAN&gt;
&lt;SPAN class=asp&gt;&amp;lt;%@ Register src="OnSubmitControlA.ascx" TagName="OnSubmitControlA" TagPrefix="uc1" %&amp;gt;&lt;/SPAN&gt;
&lt;SPAN class=asp&gt;&amp;lt;%@ Register src="OnSubmitControlB.ascx" TagName="OnSubmitControlB" TagPrefix="uc2" %&amp;gt;&lt;/SPAN&gt;
&lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;html&lt;/SPAN&gt; &lt;SPAN class=attr&gt;xmlns&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="http://www.w3.org/1999/xhtml"&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;
   &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;head&lt;/SPAN&gt; &lt;SPAN class=attr&gt;runat&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="server"&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;
      &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;title&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;Test Page&lt;SPAN class=kwrd&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN class=html&gt;title&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;
   &lt;SPAN class=kwrd&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN class=html&gt;head&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;
   &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;body&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;
      &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;form&lt;/SPAN&gt; &lt;SPAN class=attr&gt;id&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="form1"&lt;/SPAN&gt; &lt;SPAN class=attr&gt;runat&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="server"&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;
         &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;uc1:OnSubmitControlA&lt;/SPAN&gt; &lt;SPAN class=attr&gt;ID&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="OnSubmitControlA1"&lt;/SPAN&gt; &lt;SPAN class=attr&gt;runat&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="server"&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;/&amp;gt;&lt;/SPAN&gt;
         &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;uc2:OnSubmitControlB&lt;/SPAN&gt; &lt;SPAN class=attr&gt;ID&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="OnSubmitControlB1"&lt;/SPAN&gt; &lt;SPAN class=attr&gt;runat&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="server"&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;/&amp;gt;&lt;/SPAN&gt;
         &lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;asp:Button&lt;/SPAN&gt; &lt;SPAN class=attr&gt;ID&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="Button1"&lt;/SPAN&gt; &lt;SPAN class=attr&gt;runat&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="server"&lt;/SPAN&gt; &lt;SPAN class=attr&gt;Text&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="Button"&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;/&amp;gt;&lt;/SPAN&gt;
      &lt;SPAN class=kwrd&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN class=html&gt;form&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;
   &lt;SPAN class=kwrd&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN class=html&gt;body&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;
&lt;SPAN class=kwrd&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN class=html&gt;html&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;
&lt;/PRE&gt;
&lt;P&gt;(the codefile has nothing special in it...)&lt;/P&gt;The page has of course a submit button so that we can submit and test it... 
&lt;P&gt;So! What we have here!?&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;A Page, 
&lt;LI&gt;two controls that wan to access client-side code just before the page submits (for no particular reason) 
&lt;LI&gt;and at least a Validator Control that will fail validation at some point. (If we did not have a validator then I would not have a case here!)&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Now go render the page an &lt;STRONG&gt;see the result&lt;/STRONG&gt;. If you leave either TextBox empty and click on the submit button, you will notice that only the alert from the first control pop's up. The other registered script is never called....&lt;/P&gt;
&lt;P&gt;Now go back and make a slight change. &lt;STRONG&gt;Move in both&lt;/STRONG&gt; contols' codefile the call to Page.ClientScript.RegisterOnSubmitStatement from OnPreRender to OnLoad, like this:&lt;/P&gt;



&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;public&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;partial&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;class&lt;/SPAN&gt; OnSubmitControlA : System.Web.UI.UserControl
{ 
   &lt;SPAN class=kwrd&gt;protected&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;override&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;void&lt;/SPAN&gt; OnLoad(EventArgs e)
   {
      &lt;SPAN class=kwrd&gt;base&lt;/SPAN&gt;.OnLoad(e);
      Page.ClientScript.RegisterOnSubmitStatement(&lt;SPAN class=kwrd&gt;this&lt;/SPAN&gt;.GetType(), &lt;SPAN class=str&gt;"DoingSomething"&lt;/SPAN&gt;, &lt;SPAN class=str&gt;"alert('This alert is registered by OnSubmitControlA');"&lt;/SPAN&gt;);
   }
   &lt;SPAN class=kwrd&gt;protected&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;override&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;void&lt;/SPAN&gt; OnPreRender(EventArgs e)
   {
      &lt;SPAN class=rem&gt;// Let's comment this out&lt;/SPAN&gt;
      &lt;SPAN class=rem&gt;// Page.ClientScript.RegisterOnSubmitStatement(this.GetType(), "DoingSomething", "alert('This alert is registered by OnSubmitControlA');");&lt;/SPAN&gt;
      &lt;SPAN class=kwrd&gt;base&lt;/SPAN&gt;.OnPreRender(e);
   }
}
&lt;/PRE&gt;
&lt;P&gt;do the same on the other control:&lt;/P&gt;



&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;public&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;partial&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;class&lt;/SPAN&gt; OnSubmitControlB : System.Web.UI.UserControl
{
   &lt;SPAN class=kwrd&gt;protected&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;override&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;void&lt;/SPAN&gt; OnLoad(EventArgs e)
   {
      &lt;SPAN class=kwrd&gt;base&lt;/SPAN&gt;.OnLoad(e);
      Page.ClientScript.RegisterOnSubmitStatement(&lt;SPAN class=kwrd&gt;this&lt;/SPAN&gt;.GetType(), &lt;SPAN class=str&gt;"DoingSomethingElse"&lt;/SPAN&gt;, &lt;SPAN class=str&gt;"alert('This alert is registered by OnSubmitControlB');"&lt;/SPAN&gt;);
   }
   &lt;SPAN class=kwrd&gt;protected&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;override&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;void&lt;/SPAN&gt; OnPreRender(EventArgs e)
   {
      &lt;SPAN class=rem&gt;// Let's comment this out also&lt;/SPAN&gt;
      &lt;SPAN class=rem&gt;// Page.ClientScript.RegisterOnSubmitStatement(this.GetType(), "DoingSomethingElse", "alert('This alert is registered by OnSubmitControlB');");&lt;/SPAN&gt;
      &lt;SPAN class=kwrd&gt;base&lt;/SPAN&gt;.OnPreRender(e);
   }
}
&lt;/PRE&gt;
&lt;P&gt;Done! Go back and render the page! Leave either TextBox empty and click submit... See??? &lt;STRONG&gt;Now both alerts pop up!!!&lt;/STRONG&gt; &lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Why is that???&lt;/P&gt;
&lt;P&gt;Well &lt;STRONG&gt;look at the source&lt;/STRONG&gt; of the rendered page &lt;STRONG&gt;before and after the change&lt;/STRONG&gt; to see what' going on:&lt;/P&gt;
&lt;P&gt;Here is the script rendered when the call to RegisterOnSubmitStatement is placed in the &lt;STRONG&gt;OnPreRender&lt;/STRONG&gt; event:&lt;/P&gt;



&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;script&lt;/SPAN&gt; &lt;SPAN class=attr&gt;type&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="text/javascript"&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;
&amp;lt;!--
   &lt;SPAN class=kwrd&gt;function&lt;/SPAN&gt; WebForm_OnSubmit() {
      alert(&lt;SPAN class=str&gt;'This is registered by OnSubmitControlA'&lt;/SPAN&gt;);
      &lt;SPAN class=kwrd&gt;if&lt;/SPAN&gt; (&lt;SPAN class=kwrd&gt;typeof&lt;/SPAN&gt;(ValidatorOnSubmit) == &lt;SPAN class=str&gt;"function"&lt;/SPAN&gt; &amp;amp;&amp;amp; ValidatorOnSubmit() == &lt;SPAN class=kwrd&gt;false&lt;/SPAN&gt;) 
         &lt;SPAN class=kwrd&gt;return&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;false&lt;/SPAN&gt;;
      alert(&lt;SPAN class=str&gt;'This is registered by OnSubmitControlB'&lt;/SPAN&gt;);
      &lt;SPAN class=kwrd&gt;return&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;true&lt;/SPAN&gt;;
   }
&lt;SPAN class=rem&gt;// --&amp;gt;&lt;/SPAN&gt;
&lt;SPAN class=kwrd&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN class=html&gt;script&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;And here is the script rendered when the call to RegisterOnSubmitStatement is placed in the &lt;STRONG&gt;OnLoad&lt;/STRONG&gt; event:&lt;/P&gt;



&lt;PRE class=csharpcode&gt;&lt;SPAN class=kwrd&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN class=html&gt;script&lt;/SPAN&gt; &lt;SPAN class=attr&gt;type&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;="text/javascript"&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;
&amp;lt;!--
   &lt;SPAN class=kwrd&gt;function&lt;/SPAN&gt; WebForm_OnSubmit() {
      alert(&lt;SPAN class=str&gt;'This is registered by OnSubmitControlA'&lt;/SPAN&gt;);
      alert(&lt;FONT color=#000000&gt;&lt;SPAN class=str&gt;'This is registered by OnSubmitControlB'&lt;/SPAN&gt;);
      &lt;/FONT&gt;&lt;SPAN class=kwrd&gt;if&lt;/SPAN&gt; (&lt;SPAN class=kwrd&gt;typeof&lt;/SPAN&gt;(ValidatorOnSubmit) == &lt;SPAN class=str&gt;"function"&lt;/SPAN&gt; &amp;amp;&amp;amp; ValidatorOnSubmit() == &lt;SPAN class=kwrd&gt;false&lt;/SPAN&gt;) 
         &lt;SPAN class=kwrd&gt;return&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;false&lt;/SPAN&gt;;
      &lt;SPAN class=kwrd&gt;return&lt;/SPAN&gt; &lt;SPAN class=kwrd&gt;true&lt;/SPAN&gt;;
   }
&lt;SPAN class=rem&gt;// --&amp;gt;&lt;/SPAN&gt;
&lt;SPAN class=kwrd&gt;&amp;lt;/&lt;/SPAN&gt;&lt;SPAN class=html&gt;script&lt;/SPAN&gt;&lt;SPAN class=kwrd&gt;&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;Got it?&lt;/P&gt;
&lt;P&gt;If RegisterOnSubmitStatement is called after OnLoad, then the first time it's called the framework appends the statement that calls ValidatorOnSubmit() and returns false if it fails; (effectively blocking the rest of the script from executing). Subsequent calls of RegisterOnSubmitStatement (after OnLoad) are appended to the script generated by the first call (and get blocked by the effect I just described).&lt;/P&gt;
&lt;P&gt;Instead,&amp;nbsp;if all your calls to RegisterOnSubmitStatement come before the end of the OnLoad phase, then all registered scripts are appended to previously generated scripts before the eventual injection of the call to ValidatorOnSubmit().&lt;/P&gt;
&lt;P&gt;Hoping for comments on this...&lt;/P&gt;&lt;IMG height=0 src="http://blog.rousso.eu/cptrk.ashx?id=12ab0739-842d-4b50-8ff2-9faa2b78d87c" width=0&gt;&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=21568" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/tags/.net+2.0/default.aspx">.net 2.0</category></item><item><title>xsl:include, xsl:import &amp; msxml:script blocked on WSS 3 XML WebParts</title><link>https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/2006/11/29/21382.aspx</link><pubDate>Wed, 29 Nov 2006 21:24:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:21382</guid><dc:creator>rousso</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/rousso/comments/21382.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/rousso/commentrss.aspx?PostID=21382</wfw:commentRss><description>&lt;P&gt;I discovered today (the hard way), that we can no longer use &lt;STRONG&gt;xsl:include&lt;/STRONG&gt; and &lt;STRONG&gt;xsl:import&lt;/STRONG&gt; elements in XSL Transformations&amp;nbsp;for Windows SharePoint Services 3.0 XML WebParts.&lt;/P&gt;
&lt;P&gt;Along with those &lt;STRONG&gt;msxml:script&lt;/STRONG&gt; is also blocked.&lt;/P&gt;
&lt;P&gt;I am going to investigate this further and see if there is an administrative way to bypass this security restriction. XSLT code reuse is a useful thing and I want to keep it as an option in some environments.&lt;/P&gt;
&lt;P&gt;Anyhow...&lt;/P&gt;
&lt;P&gt;I am including two relevant links I found on the web:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://weblogs.asp.net/soever/archive/2005/03/08/389371.aspx"&gt;SharePoint DVWP: xslt limitations...&lt;/A&gt; in Serge van den Oever's Blog 
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odc_SP2003_ta/html/OfficeSharePointDDWRT.asp"&gt;SharePoint Data View Web Part Extension Functions in the ddwrt Namespace&lt;/A&gt; in MSDN&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;I would&amp;nbsp;appreciate comments from people who know more on the subject.&lt;/P&gt;&lt;IMG height=0 src="http://blog.rousso.eu/cptrk.ashx?id=3ca5733c-9fef-4b8b-8d09-e08af4f34f54" width=0&gt;&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=21382" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/tags/Web+Development/default.aspx">Web Development</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/tags/Computing/default.aspx">Computing</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/tags/SharePoint/default.aspx">SharePoint</category></item><item><title>Innovation 2006. Αποτελέσματα Α Φάσης</title><link>https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/2006/11/21/innovation-2006.aspx</link><pubDate>Wed, 22 Nov 2006 03:16:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:20857</guid><dc:creator>rousso</dc:creator><slash:comments>3</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/rousso/comments/20857.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/rousso/commentrss.aspx?PostID=20857</wfw:commentRss><description>&lt;P&gt;&lt;SPAN class="big_title_black "&gt;Κάνω copy/paste από το &lt;A href="http://www.innovation2006.gr/" target=_blank&gt;http://www.innovation2006.gr/&lt;/A&gt; τα αποτελέσματα της πρώτης φάσης του διαγωνισμού της OTEnet &lt;STRONG&gt;με στόχο να συλλέξω μερικά σχόλιά σας&lt;/STRONG&gt;. &lt;/SPAN&gt;&lt;SPAN class="big_title_black "&gt;Στον διαγωνισμό υποβλήθηκαν &lt;STRONG&gt;2.622&lt;/STRONG&gt; προτάσεις, &lt;STRONG&gt;48&lt;/STRONG&gt; από τις οποίες προκρίθηκαν στην Β' Φάση.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class="big_title_black "&gt;Όσοι πιστοί προσέλθετε!&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class="big_title_black "&gt;&lt;EM&gt;(σ.σ: μια από τις προτάσεις που πέρασαν στην Β' φάση έχω υποβάλει κι εγώ μαζί με δύο φίλους/συνεργάτες και καθώς ο διαγωνισμός είναι σε εξέλιξη, θα είμαι λίγο φειδωλός στα δικά μου σχόλια).&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class="big_title_black "&gt;&lt;/SPAN&gt;
&lt;HR&gt;

&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri size=3&gt;&lt;STRONG&gt;Αποτελέσματα Α' Φάσης&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;&lt;STRONG&gt;Στην κατηγορία ''Εφευρετικότητα'' προκρίθηκαν 20 προτάσεις + 2 που ισοψήφησαν :&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;Εξατομικευμένη πληροφόρηση μέσω RSS και 'Collaborative Filtering' &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;Μέθοδος πληρωμής τελών κυκλοφορίας με τη χρήση προπληρωμένης κάρτας &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;De.dalici.usWeb: Καινοτόμα Υπηρεσία Παγκόσμιου Ιστού (Web Service) για την αποτελεσματικότερη ανάπτυξη του e-business στην Ελλάδα και στα νεοεισερχόμενα μέλη της Ευρωπαϊκής Ένωσης. &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;Αυτόματο Παρατηρητήριο Τιμών Πρατηρίων Υγρών Καυσίμων &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;Υποστήριξη χρηστών αστικών μέσων μαζικής μεταφοράς με διαδικτυακών υπηρεσιών μέσω κινητών τηλεφώνων. &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;News Monitoring - NeMo &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;Shopbot &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;Ανάπτυξη διαδικτυακής υπηρεσίας για τη διαχείριση και διάθεση χωρικής και αντικειμενοστραφούς πληροφορίας σε φορητές συσκευές. &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;Agoratherapy.eu/.gr/.com Ιδιωτικό Παρατηρητήριο τιμών &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;AllergyON: Ένα φορητό διαδικτυακό σύστημα υποβοήθησης ανθρώπων με αλλεργία &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;Δημιουργία portal με θέμα τον κινηματογράφο στο ασύρματο Internet &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;MashUp καθημερινότητας &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;e-ΚΕΠ (ΚΕΠ_to_the_Home) &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;Προϊόντα για ασφάλεια διαδικτύου και εφαρμογών &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;Τώρα επιτέλους έχεις την δύναμη να αλλάξεις τον πλανήτη! &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;uGlue &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;Δημιουργία Διεθνούς Μοναδικού Κωδικού Αναγνωρίσεως Πραγματικών Αντικειμένων (ISROIC = International Standard Real Object Identification Code) και ετικέτας σήμανσης αυτών. &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;RateIt &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;Meetme@Blue &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;ΠΡΟΓΡΑΜΜΑ “ΞΕΝΑΓΟΣ INTERNET” &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;ΚΙΝΗΤΟ ΤΗΛΕΦΩΝΟ (PDA)-ΗΛΕΚΤΡΟΚΑΡΔΙΟΓΡΑΦΟΣ ΜΕ ΔΥΝΑΤΟΤΗΤΑ ΑΣΥΡΜΑΤΗΣ ΕΥΡΥΖΩΝΙΚΗΣ ΑΠΟΣΤΟΛΗΣ ΤΩΝ ΔΕΔΟΜΕΝΩΝ ΜΕΣΩ ΔΙΚΤΥΩΝ ΚΙΝΗΤΗΣ ΤΗΛΕΦΩΝΙΑΣ ΣΕ ΚΕΝΤΡΟ ΕΠΕΙΓΟΥΣΑΣ ΠΡΟΝΟΣΟΚΟΜΕΙΑΚΗΣ ΦΡΟΝΤΙΔΑΣ. &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;PROMIS - PROactive Malware Identification System &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;&lt;STRONG&gt;Στην κατηγορία ''Επιχειρηματική Δραστηριότητα'' προκρίθηκαν 20 προτάσεις + 6 που ισοψήφησαν :&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;LowerCost - Λύσεις για μείωση κόστους της παροχής υπηρεσιών μέσω Internet &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;Μέθοδος διανομής διαφημίσεων στο internet από τους ISPs με βάση την γεωγραφική τοποθεσία των συνδρομητών τους. &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;Υπηρεσία e-Τηλεμετρίας για Δημόσιους και Αναπτυξιακούς Φορείς Παροχής Υπηρεσιών &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;www.eventUally.com: ΗΛΕΚΤΡΟΝΙΚΟ ΕΡΓΑΛΕΙΟ ΟΡΓΑΝΩΣΗΣ ΕΚΔΗΛΩΣΕΩΝ &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;myGarden &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;Εμπορική επιχείρηση διακίνησης «Κυματομορφικού (PCM) συστήματος», το οποίο διασφαλίζει την απόρρητη διαμεταγωγή ηχητικών δεδομένων (PCM) στο διαδίκτυο. &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;Εταιρεία Ανάπτυξης Ψηφιακών Παρατηρητηρίων Δια Βίου Μάθησης (Digital Observatories of Life Long Learning – DOL3) &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;Ηλεκτρονική αγορά (Travel e-Marketplace TeM-Β2Β) ταξιδιωτικών υπηρεσιών για επιχειρήσεις &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;ΥπερΚάρτα (HyperCard) – hypercard.gr &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;Εικονικές λίστες μουσικής (Virtual Playlists) &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;Οικολογική διάθεση περιττών αντικειμένων για το κοινωνικό όφελος. &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;Διαδικτυακό Σύστημα Βέλτιστης Διαχείρισης Ενέργειας και Ενεργειακών Πόρων &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;SHIPPING PORTAL COMPANY &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;«To WiDAC μέσα από το Internet» - Όταν το αξιόπιστο Hardware συναντά το πολυλειτουργικό Software στο Internet… τα πάντα είναι «υπό έλεγχο» και από οπουδήποτε… &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;Proximity marketing μέσω Wi-Fi hotspots &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;INTBrowser: Ο φυλλομετρητής που κρίνει και προτείνει &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;ΟΤΕΝΕΤ -Υπηρεσία Ψηφιακών Ενδείξεων. ή OTENET Web Based Meter Reading Co. για ξένες χώρες. &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;Προσομοίωση τεχνικών έργων και διαδραστική παρέμβαση των χρηστών σε αυτά μέσω internet &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;Greek rooms deals…Got game? &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;Αυτόματο σύστημα τηλεοπτικών μετρήσεων και δημοσκοπήσεων μέσω Διαδικτύου &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;Διαδικτυακή πώληση-τροποποίηση συμβολαίων ασφαλειών και άλλες επιχειρησιακές λειτουργίες &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;Δημιουργία εταιρίας παροχής υπηρεσιών υποστήριξης και εκπαίδευσης σχετικά με την ευχρηστία διαδικτύων τόπων και εφαρμογών &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;24ωρη παρακολούθηση της υγείας και της παραγωγής των ζώων κτηνοτροφικών μονάδων με χρήση του Internet &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;e-copyright.gr / Ελληνικος Δικτυακος τοπος κατοχυρωσης της Πνευματικης Ιδιοκτησιας &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;'Ενας για όλους, αλλά και ΟΛΟΙ ΓΙΑ ΕΝΑΝ! &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;FONT face=Calibri&gt;Rent A Hand - Έυρεση συνεργατών (outsourcing) &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 10pt;"&gt;&lt;SPAN&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=20857" width="1" height="1"&gt;</description></item><item><title>CS:Editor ViewState</title><link>https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/2006/09/19/16906.aspx</link><pubDate>Tue, 19 Sep 2006 18:49:44 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:16906</guid><dc:creator>rousso</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/rousso/comments/16906.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/rousso/commentrss.aspx?PostID=16906</wfw:commentRss><description>&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: Verdana"&gt;&lt;STRONG&gt;Quick Tip:&lt;o:p&gt;&lt;/o:p&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: Verdana"&gt;CommunityServer 2.1 uses TinyMCE as a rich text editor. They use what appears to be a wrapper to TinyMCE: CommunityServer.Controls.Editor. As I am developing an application on top of CS 2.1 I am using the same rich text editor and encountered the following problem:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: Verdana"&gt;I was setting declaratively the Height Property of the Editor control, but it could not retain it's value&amp;nbsp;after postbacks. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: Verdana"&gt;Look at the ASPX part:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;lt;%@&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: 'Courier New'"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: maroon; FONT-FAMILY: 'Courier New'"&gt;Register&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: 'Courier New'"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 'Courier New'"&gt;Assembly&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;="CommunityServer.Controls"&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: 'Courier New'"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 'Courier New'"&gt;Namespace&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;="CommunityServer.Controls" &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 'Courier New'"&gt;TagPrefix&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;="CS"&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: 'Courier New'"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;%&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: 'Courier New'"&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: maroon; FONT-FAMILY: 'Courier New'"&gt;CS&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;:&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: maroon; FONT-FAMILY: 'Courier New'"&gt;Editor&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 'Courier New'"&gt;ID&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;="edtNotes"&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 'Courier New'"&gt;runat&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;="server"&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt; &lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 'Courier New'"&gt;Height&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;="160px"&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;/&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: Verdana"&gt;So far so good but, after a postback the Editor control returned to its default height (messing-up my layout). &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: Verdana"&gt;To make a long story short,&amp;nbsp;it figured that something is wrong either with timing or with implementation. I mean that either the wrapper, or the wrapped control do not assign the value of Height before ViewState is saved, or they assign it to either a Property that is not saved in view state, or&amp;nbsp;during an Event that fires before LoadViewState.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: Verdana"&gt;So what I did to work-around the issue was just disable ViewState in the Editor control.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: maroon; FONT-FAMILY: 'Courier New'"&gt;CS&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;:&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: maroon; FONT-FAMILY: 'Courier New'"&gt;Editor&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 'Courier New'"&gt;ID&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;="edtNotes"&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 'Courier New'"&gt;runat&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;="server"&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 'Courier New'"&gt;Height&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;="160px"&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: red; FONT-FAMILY: 'Courier New'"&gt;EnableViewState&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;="false"&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Courier New'"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'"&gt;/&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Verdana"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: Verdana"&gt;The problem has gone away and that means that LoadViewState was overwriting my value.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #003300; FONT-FAMILY: Verdana"&gt;I did not devote any time in looking further into this matter so I'm just posting this work-around, but if I do, I 'll let you know the details.&lt;/SPAN&gt;&lt;/P&gt;&lt;img width="0" height="0" src="http://blog.rousso.eu/cptrk.ashx?id=f9997708-a565-49b2-8115-09ad5efe3939"&gt;&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=16906" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/tags/CS/default.aspx">CS</category></item><item><title>Hiding a Report Parameter in SQL Server 2000 Reporting Services</title><link>https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/2006/05/18/12909.aspx</link><pubDate>Thu, 18 May 2006 17:33:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:12909</guid><dc:creator>rousso</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/rousso/comments/12909.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/rousso/commentrss.aspx?PostID=12909</wfw:commentRss><description>&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Situation:&lt;/U&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;You use SQL 2000 Reporting Services, to create a report (probably same applies for SQL 2005, but I have not tried it yet).&lt;/P&gt;
&lt;P&gt;You report expects various parameters but the user does not need to specify all of them through the user interface. For example the value of a parameter (say ParamB) can be calculated based on the value of another parameter (say ParamA) that the user selects.&lt;/P&gt;
&lt;P&gt;So, you want to hide ParamB from the user.&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;Solution:&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;In the Report Parameters Collection Editor select the parameter that you want to hide and clear its “Prompt” field. Then add a Default Value to it (either by using an expression or by using a query).&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;Quick Tip:&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Notice that when you use a query to get the default value of the hidden parameter ParamB you can always pass to it the Value that the user selected for ParamA (or another parameter).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;IMG height=0 src="http://blog.rousso.gr/cptrk.ashx?id=bec6cc0f-49f0-4b68-906e-087b86165317" width=0&gt;&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=12909" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/tags/Computing/default.aspx">Computing</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/tags/SQL+Server/default.aspx">SQL Server</category></item><item><title>My Funny Surprises With .NET 2.0</title><link>https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/2005/11/18/7172.aspx</link><pubDate>Fri, 18 Nov 2005 19:10:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:7172</guid><dc:creator>rousso</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/rousso/comments/7172.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/rousso/commentrss.aspx?PostID=7172</wfw:commentRss><description>&lt;P&gt;As I was developing applications for .Net Framework 1.0 and 1.1, I was building a couple of code libraries with features I found smart and useful for my apps.&lt;/P&gt;
&lt;P&gt;Being an active member of dotNetZone.gr, (a Greek .net developer community often nicknamed DNZ), I recently decided to share some of that code with others in DNZ.&lt;/P&gt;
&lt;P&gt;The idea was to do that while porting the code to .Net Framework 2.0 through Visual Studio 2005.&lt;/P&gt;
&lt;P&gt;Now, what’s so funny about that?&lt;/P&gt;
&lt;P&gt;First thing I wanted to share was my Wizard classes. I implemented them in the context of a web project and used to find them brilliant.&lt;/P&gt;
&lt;P&gt;Using SourceSafe Ι started today pinning and branching code to a new VS 2005 solution that would contain the part of my libraries related to Wizards.&lt;/P&gt;
&lt;P&gt;“Come on! Where is the funny part?” you would still ask!&lt;/P&gt;
&lt;P&gt;Well I compiled it and got the following compile time errors:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Error1: 'Wizard' is an ambiguous reference between 'System.Web.UI.WebControls.Wizard' and 'Softbone.Shared.Wizards.Wizard'&amp;nbsp; 
&lt;LI&gt;Error&amp;nbsp;2:&amp;nbsp;'WizardStep' is an ambiguous reference between 'System.Web.UI.WebControls.WizardStep' and 'Softbone.Shared.Wizards.WizardStep'&amp;nbsp; 
&lt;LI&gt;Error&amp;nbsp;3&amp;nbsp;'WizardStepCollection' is an ambiguous reference between 'System.Web.UI.WebControls.WizardStepCollection' and 'Softbone.Shared.Wizards.WizardStepCollection'&amp;nbsp;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;EM&gt;(note: Softbone is brand name I am using, and Softbone.Shared is the namespace of the shared code library I am creating porting my code from .net framework 1.1 to 2.0).&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Ooops!&lt;/P&gt;
&lt;P&gt;Not only Microsoft implemented the same functionality as I did, but the just happened to have chosen the same class names as I did!&lt;/P&gt;
&lt;P&gt;Well that, I thought was funny enough to mention…&lt;/P&gt;
&lt;P&gt;So,&amp;nbsp;it might be the case that my library is obsolete with the new version of the .Net Framework, but still, here is what is more interesting about it now than ever: I have to check my implementation against Microsoft’s one to see where mine falls short or even if I did some things that are better or smarter than Microsoft’s.&lt;/P&gt;
&lt;P&gt;So I will be posting my code soon to my main&amp;nbsp;blog and my .net blog in DNZ and keep you posted here, to see if I have more interesting or funny encounters during my Wizard Library porting to .Net Framework 2.0.&lt;/P&gt;
&lt;P&gt;I ‘ll let you know….&lt;BR&gt;&lt;/P&gt;&lt;IMG height=0 src="http://blog.rousso.gr/cptrk.ashx?id=eedd0280-36fc-45e9-b7ff-e1cdfb6cfda6" width=0&gt;&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=7172" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/tags/Computing/default.aspx">Computing</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/tags/.net+2.0/default.aspx">.net 2.0</category></item><item><title>Προσωρινή Διακοπή</title><link>https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/2005/11/04/6710.aspx</link><pubDate>Sat, 05 Nov 2005 05:25:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:6710</guid><dc:creator>rousso</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/rousso/comments/6710.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/rousso/commentrss.aspx?PostID=6710</wfw:commentRss><description>Το site μου (www.rousso.gr) καθώς και το κύριο blog μου (blog.rousso.gr) θα είναι προσωρινά offline από την Παρασκευή 4 Νοεμβρίου το απόγευμα μέχρι το απόγευμα της Κυριακής 6 Νοεμβρίου λόγω μετακόμισης του Data Center που τα φιλοξενεί&amp;nbsp;σε άλλο κτήριο.&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=6710" width="1" height="1"&gt;</description></item><item><title>Έφυγα...</title><link>https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/2005/09/15/5469.aspx</link><pubDate>Thu, 15 Sep 2005 08:25:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:5469</guid><dc:creator>rousso</dc:creator><slash:comments>4</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/rousso/comments/5469.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/rousso/commentrss.aspx?PostID=5469</wfw:commentRss><description>&lt;P&gt;Σύντροφοι, έχω φύγει....&lt;/P&gt;
&lt;P&gt;Πάω να παντρευτώ (το Σάββατο 17 Σεπτέμβρη).... Και καπάκι ταξιδάκι (γεροί να είμαστε).&lt;BR&gt;Τα λέμε ξανά τον άλλο μήνα...&lt;/P&gt;
&lt;P&gt;Happy DNZing 2U all in the meantime... &lt;BR&gt;Και μη νομίσετε... θα επανέλθω με περισσότερη όρεξη και περισσότερο χρόνο για computerάδικες τρελίτσες...&lt;/P&gt;
&lt;P&gt;Talk 2 U all soon...&lt;/P&gt;
&lt;P&gt;rousso&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=5469" width="1" height="1"&gt;</description></item><item><title>Netscape 8 blues starting...</title><link>https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/2005/09/12/5383.aspx</link><pubDate>Tue, 13 Sep 2005 00:08:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:5383</guid><dc:creator>rousso</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/rousso/comments/5383.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/rousso/commentrss.aspx?PostID=5383</wfw:commentRss><description>&lt;p&gt;Remember &lt;a href="http://blog.rousso.gr/Trackback.aspx?guid=98311a0b-ee27-4af5-a3af-000d2d65f2f9"&gt;my recent blog entry about Netscape 8 excitement&lt;/a&gt;???&lt;/p&gt;
&lt;p&gt;Remember I told you that the good news was that you can switch to IE engine with a click from within Netscape 8?&lt;/p&gt;
&lt;p&gt;Well… here is the first bad news:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Go find a site with a textarea control to fill in. 
&lt;/li&gt;&lt;li&gt;Then switch Netscape to use the IE engine. 
&lt;/li&gt;&lt;li&gt;Try to enter text in the textarea field. While doing that, try
switching the active language (from Greek to English in my case). You
know; by pressing Alt-Shift. &lt;/li&gt;&lt;li&gt;Well, there goes the focus out of the control! Unless you
pick up the mouse and move the focus back in, you will not be able to
continue typing from where you left off.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;The “bug” does not appear in textboxes (&amp;lt;input type=text&amp;gt;). Just textareas (&amp;lt;textarea&amp;gt;&amp;lt;/textarea&amp;gt;)….&lt;/p&gt;
&lt;p&gt;Try to&amp;nbsp;participate on a forum (i.e: a CS based forum), where
you need toy change language frequently while you are typing… Hopeless…&lt;/p&gt;
&lt;p&gt;Now I am wondering… Who’s “bug” is this Netscape’s or IE’s engine's???&lt;/p&gt;
&lt;p&gt;We ‘ll see…&lt;/p&gt;
&lt;p&gt;There are also a number of other issues I ran into from time to time
(most related to IE engine's usage by Netscape. For instance try to hit
the back button to return to a page with Greek Encoding. Page encoding
does not always get applied resulting in an unreadable page you need to
refresh. Probably this does not have to do with ISO-8859-7 (Greek) or
Windows-1253 (Greek also) encodings only.&lt;/p&gt;
&lt;p&gt;So far, although cool, the ability of Netscape 8 to try to function
like IE (I suppose by using the browser control) is not that useful all
the time...&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://blog.rousso.gr/cptrk.ashx?id=aec1c3b2-71c0-4567-ad6b-2cdb37058b67" height="0" width="0"&gt;&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=5383" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/tags/Computing/default.aspx">Computing</category></item><item><title>JDiskReport by JGoodies...</title><link>https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/2005/09/10/5323.aspx</link><pubDate>Sun, 11 Sep 2005 02:21:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:5323</guid><dc:creator>rousso</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/rousso/comments/5323.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/rousso/commentrss.aspx?PostID=5323</wfw:commentRss><description>&lt;TABLE&gt;

&lt;TR&gt;
&lt;TD&gt;
&lt;P&gt;In my time -believe it or not– I ‘ve seen far more Java Apps crash than Windows Apps (when running on Windows of course)..&lt;/P&gt;
&lt;P&gt;Nevertheless here is a little Java Application that not only never crashed on me but is also very useful:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.jgoodies.com/freeware/jdiskreport/" target=_blank&gt;JDiskReport&lt;/A&gt; by &lt;A href="http://www.jgoodies.com/" target=_blank&gt;JGoodies.com&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;It will scan your hard drive and tell you the size of every folder in very graphical colorful an useful way.&lt;/P&gt;
&lt;P&gt;The guys who make it work mainly on Java UI design projects (with Swing), and probably built this app as an attraction to their cause.&lt;/P&gt;
&lt;P&gt;It’s the best in its class (to my opinion). Go get it!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;
&lt;TD align=right&gt;&lt;IMG height=263 alt=Jdiskreport hspace=0 src="http://blog.rousso.gr/content/binary/jdiskreport.jpg" width=305 align=right border=0&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;IMG height=0 src="http://blog.rousso.gr/cptrk.ashx?id=9b8e8c19-f06f-4705-b2b9-9300fc43f6cc" width=0&gt;&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=5323" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/tags/Free+but+Worthy+Tools/default.aspx">Free but Worthy Tools</category></item><item><title>Netscape 8</title><link>https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/2005/09/07/5214.aspx</link><pubDate>Wed, 07 Sep 2005 20:46:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:5214</guid><dc:creator>rousso</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/rousso/comments/5214.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/rousso/commentrss.aspx?PostID=5214</wfw:commentRss><description>&lt;p&gt;Since IE 4, my use of Netscape started to decline. After IE 5 I
hardly ever used Netscape Navigator. It was not even installed on my
computer. I just&amp;nbsp;had it installed in a test machine to
verify&amp;nbsp;DHTML compliance with it whenever needed.&lt;/p&gt;
&lt;p&gt;Until today!&lt;/p&gt;
&lt;p&gt;I downloaded and installed Netscape 8 and discovered that apart from
a nice browsing experience, Netscape now offers the ability to switch
to the IE engine whenever wanted or needed. &lt;/p&gt;
&lt;p&gt;Well that’s it! I now have Firefox and IE all in one: Netscape 8.&lt;/p&gt;
&lt;p&gt;I am still excited with it and use it all the time. If things change I ‘ll let you know!&lt;/p&gt;
&lt;p&gt;Till then, I suggest you try it yourself…&lt;/p&gt;&lt;img src="http://blog.rousso.gr/cptrk.ashx?id=98311a0b-ee27-4af5-a3af-000d2d65f2f9" height="0" width="0"&gt;&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=5214" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/tags/Computing/default.aspx">Computing</category></item><item><title>GreekEuroVerbalizer</title><link>https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/2005/08/23/4553.aspx</link><pubDate>Tue, 23 Aug 2005 22:24:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:4553</guid><dc:creator>rousso</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/rousso/comments/4553.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/rousso/commentrss.aspx?PostID=4553</wfw:commentRss><description>&lt;P&gt;Reading a &lt;a href="http://www.dotnetzone.gr/cs/blogs/equilibrium/articles/Greek_Money_Verbage.aspx" target=_blank&gt;recent post in dotNetZone.gr&lt;/A&gt; I decided to implement as a proof-of-concept an algorithm using regular expressions to convert a decimal numeral representing an amount of money, to a verbal from in Greek text.&lt;/P&gt;
&lt;P&gt;So to make it more obvious the problem was to convert 1,234,567.89 Euros to the string "One Million, Two Hundred&amp;nbsp;Thirty Four, Five Hundred Sixtyseven Euros and Eightynine Cents" (only that the text should be in Greek and not English as I typed here to make the concept clear for everyone).&lt;/P&gt;
&lt;P&gt;The algorithm I came up with is not the best that I could do but is enough as a proof of concept. Do not be alarmed if it seems too long at first glance. It's just the code comments that make it so long.&lt;/P&gt;
&lt;P&gt;So to find the algorithm:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Either read it online in my &lt;a href="http://www.dotnetzone.gr/cs/blogs/rousso/articles/GreekEuroVerbalizer.aspx" target=_blank&gt;&lt;STRONG&gt;relevant blog article in dotNetZone.gr here&lt;/STRONG&gt;&lt;/A&gt;. Apart from code comments, all other text in the refered article is in Greek but since you are reading this you do not realy need to be able to understand anything else 
&lt;LI&gt;or download &lt;A href="http://blog.rousso.gr/content/binary/GreekEuroVerbalizer.zip"&gt;GreekEuroVerbalizer.zip (220,72 KB)&lt;/A&gt;&amp;nbsp;which contains a VS.NET 2003 solution with a demo windows application that tests the algorithm. 
&lt;LI&gt;You can also view online a &lt;A href="http://blog.rousso.gr/doc/GreeekEuroVerbalizer/index.html" target=_blank&gt;rough documentation&lt;/A&gt; created with nDoc from my source comments &lt;A href="http://blog.rousso.gr/doc/GreeekEuroVerbalizer/index.html"&gt;here&lt;/A&gt;.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;IMG height=0 src="http://blog.rousso.gr/cptrk.ashx?id=d47ca051-038b-49c1-be6e-291e5b996103" width=0&gt;&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=4553" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/tags/Algorithms/default.aspx">Algorithms</category></item><item><title>Καινούργιο μου καλάθι...</title><link>https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/2005/08/16/4304.aspx</link><pubDate>Wed, 17 Aug 2005 00:29:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:4304</guid><dc:creator>rousso</dc:creator><slash:comments>4</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/rousso/comments/4304.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/rousso/commentrss.aspx?PostID=4304</wfw:commentRss><description>&lt;P&gt;“Καινούργιο μου καλάθι και που να σε κρεμάσω…” λένε στο χωριό μου….&lt;/P&gt;
&lt;P&gt;Μαντέψτε τι αγόρασα σήμερα με 1200 ευρώπουλα….&lt;/P&gt;
&lt;P&gt;Ένα &lt;A href="http://www.sonystyle.com/is-bin/INTERSHOP.enfinity/eCS/Store/en/-/USD/LC_ViewPage-Start?isurl=true&amp;amp;basetemplate=/lc/base/lc_hf.isml&amp;amp;page=static/lc/vaio/notebooks/a/index.isml" target=_blank&gt;Sony Vaio VGN-A297 XP&lt;/A&gt;… &lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;FONT size=1&gt;Processor Intel Centrino Mobile 1.8 GHz &lt;BR&gt;Memory 512MB DDR &lt;BR&gt;Hard Drive 80GB &lt;BR&gt;Graphics ATI Mobility Radeon 9700 64MB &lt;BR&gt;Screen Size 17" TFT Wide Screen &lt;BR&gt;Sound On Board Sound Blaster Compatible &lt;BR&gt;Floppy Drive N &lt;BR&gt;Other drive DVD-R/CD-RW writer combo &lt;BR&gt;Modem Y &lt;BR&gt;Network card Y &lt;BR&gt;Other hardware Wireless LAN, BlueTooth, FireWire Port, 3 x USB &lt;BR&gt;Operating system Windows XP Professional&amp;nbsp; &lt;BR&gt;Other software&amp;nbsp; &lt;BR&gt;Warranty 1 year return-to-base&lt;/FONT&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Not bad for €1.200! &lt;/P&gt;
&lt;P&gt;(Θα του βάλω άλλα 512 MB RAM βέβαια, αλλά πόσο να κάνουν;)&lt;/P&gt;
&lt;P&gt;Έτσι θα έχω πλέον ένα φορητό σπίτι για το VS.NET και το VSS μου….&lt;/P&gt;
&lt;P&gt;με ‘γειά μου!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Προβληματίζομαι όμως…&lt;/P&gt;
&lt;P&gt;Θέλω να βάλω Windows 2003 Server αλλά δεν μπορώ να το πάρω εύκολα απόφαση…&lt;/P&gt;
&lt;P&gt;Για development με βολεύει πολύ αλλά έχω δύο drawbacks: δεν θα παίζουν τα “καλούδια” της Sony (που δεν ξέρω ακόμα να μου είναι απαραίτητα) και επίσης άμα με πιάσει σε κανένα ταξίδι να παίξω κανένα παιχνιδάκι (ένα Rome Total War ας πούμε) ή όποτε θελήσω να το χρησιμοποιήσω εν είδη media center στο σπίτι, δεν θα είναι το κατάλληλότερο για τη δουλειά…&lt;/P&gt;
&lt;P&gt;Άσε που θα γκρινιάζει και η Sony αν μου προκύψει θέμα εγκύησης (ω μη γέννητω)..&lt;/P&gt;
&lt;P&gt;Οπότε προς το παρόν το σκέφτομαι… Μάλλον όμως θα το κρατήσω μερικές μέρες με το XP κι αφού το τσεκάρω ότι δουλεύει&amp;nbsp; θα του βάλω το Win 2003 Server με το εταιρικό VLK&amp;nbsp;και βλέπουμε… Θα το αποφασίσω στην πράξη αφού δεν μπορώ στη θεωρία…&lt;/P&gt;&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=4304" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/tags/Misc/default.aspx">Misc</category></item><item><title>dnz avatar</title><link>https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/2005/08/16/4273.aspx</link><pubDate>Tue, 16 Aug 2005 18:27:44 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:4273</guid><dc:creator>rousso</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/rousso/comments/4273.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/rousso/commentrss.aspx?PostID=4273</wfw:commentRss><description>&lt;p&gt;&lt;img height="85" alt="" src="http://www.dotnetzone.gr/cs/photos/rousso/images/4271/original.aspx" width="80" align="right" border="0" /&gt;&lt;/p&gt;
&lt;p&gt;Περιέργεια&amp;hellip;&lt;/p&gt;
&lt;p&gt;Όποιος ξέρει τι συμβολίζει αυτό και που μου ήρθε να το βάλω σαν avatar&amp;hellip; ας αφήσει ένα comment σ΄αυτό το post&amp;hellip;&lt;/p&gt;
&lt;p&gt;&lt;font color="#9a9a9a"&gt;και στα αγγλικά:&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&amp;mdash;&lt;/p&gt;
&lt;p&gt;I use the symbol depicted above as an avatar in DNZ. If you know where this symbol comes from&amp;nbsp;or what it means please leave a comment to this post&amp;hellip;&lt;/p&gt;
&lt;p&gt;Just curious&amp;hellip;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=4273" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/tags/DNZ/default.aspx">DNZ</category></item><item><title>Σημαντικά αλλά μη απαντημένα DNZ posts μου</title><link>https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/2005/08/16/4268.aspx</link><pubDate>Tue, 16 Aug 2005 15:07:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:4268</guid><dc:creator>rousso</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/rousso/comments/4268.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/rousso/commentrss.aspx?PostID=4268</wfw:commentRss><description>&lt;P&gt;Για να μην χαθούν στα βάθη του χρόνου και της λήθης αποφάσισα να βάλω εδώ links σε κάποια posts που έχω κάνει στο forum του DNZ&amp;nbsp;που ενώ θεωρώ σημαντικά, δεν έχω προς το παρόν πάρει κάποια απάντηση. &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;a href="http://www.dotnetzone.gr/cs/forums/4167/ShowPost.aspx" target=_blank&gt;SharePoint, customErrors &amp;amp; 404 error pages&lt;/A&gt; 
&lt;LI&gt;&lt;a href="http://www.dotnetzone.gr/cs/forums/4153/ShowPost.aspx"&gt;Identifiable Browser Windows&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Για δείτε τα και έχετε το νου σας… Επαναλαμβάνω ότι θεωρώ ότι έχουν ενδιαφέρον…&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=4268" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/tags/DNZ/default.aspx">DNZ</category></item><item><title>VS.NET Copy Project</title><link>https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/2005/07/14/4267.aspx</link><pubDate>Tue, 16 Aug 2005 14:44:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:4267</guid><dc:creator>rousso</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/rousso/comments/4267.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/rousso/commentrss.aspx?PostID=4267</wfw:commentRss><description>&lt;P&gt;Here is a solution for an issue&amp;nbsp;I run into today.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Issue:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;In VS.NET 2003 I tried to use the "Copy Project" feature to copy (deploy) the files required to run a web application to another web server. Nevertheless I got an error saying (more or less): ..."error occurred while copying the project" ... "Visual Studio .NET has detected that the specified Web server is not running ASP.NET version 1.1. You will be unable to run ASP.NET Web applications or services". &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Context:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;I was evaluating Community Server 1.1 and I had a full source installation on my Windows XP workstation altering bits and pieces to customize the application. I had previously installed a binary installation of the same product to my Windows 2003 Web Server.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Reactions:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;First I made sure ASP.NET was running on my remote web server. Just to be on the safe side I even run aspnet_regiis -i, but it did not fix the problem. I had never encountered an issue like that so I googled for it. I found similar problems but all had solutions I had already tried with no luck. So mine had to be different.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Solution:&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;I figured out what was wrong when I tried to find out what my VS.NET was doing on my workstation to determine the ASP.NET version on my remote web server. It turned out that VS.NET did an HTTP request to &lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;http://MyRemoteWebSrver/MyApplication/get_aspx_ver.aspx&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;.&lt;/FONT&gt; &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;This file (an actual ASPX page named get_aspx_ver.aspx) does not exist so the server returns the well known "resource not found" error page. But ASP.NET in that default error page, returns the .NET Framework version information which is in turn used by VS.NET to verify version information. Silly but true! &lt;/P&gt;
&lt;P&gt;Now! The problem was that Community Server by default had defined Custom Error Pages. So suddenly it occurred to me and here is what I did to solve the problem:&lt;/P&gt;
&lt;P&gt;I went to my remote web server, and added the following lines to the web.config of my application:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr&gt;&lt;SPAN&gt;&lt;FONT color=#0000ff&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#800000&gt;location&lt;/FONT&gt;&amp;nbsp;&lt;FONT color=#ff0000&gt;path&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;="get_aspx_ver.aspx"&amp;gt;&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color=#0000ff&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#800000&gt;system.web&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&amp;gt;&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color=#0000ff&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#800000&gt;customErrors&lt;/FONT&gt;&amp;nbsp;&lt;FONT color=#ff0000&gt;mode&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;="Off" /&amp;gt;&lt;/FONT&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT color=#0000ff&gt;&amp;lt;/&lt;/FONT&gt;&lt;FONT color=#800000&gt;system.web&lt;FONT color=#0000ff&gt;&amp;gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&amp;lt;/&lt;/FONT&gt;&lt;FONT color=#800000&gt;location&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Solved!&lt;/P&gt;
&lt;P&gt;&lt;FONT face=verdana size=1&gt;P.S: I also added the same lines to the web.config in my workstation since I was about to overwrite the web.config on the server. Remember I was originally trying to copy the files needed to run the project from my workstation to the web server using Copy Project feature of VS.NET.&lt;/FONT&gt;&lt;/P&gt;&lt;/SPAN&gt;&lt;IMG height=0 src="http://blog.rousso.gr/cptrk.ashx?id=28357de5-1e92-4ba1-88c3-9619c5146cd0" width=0&gt;&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=4267" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/tags/Web+Development/default.aspx">Web Development</category><category domain="https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/tags/VS.NET/default.aspx">VS.NET</category></item><item><title>CS default language problems</title><link>https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/2005/08/05/4264.aspx</link><pubDate>Tue, 16 Aug 2005 13:47:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:4264</guid><dc:creator>rousso</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/rousso/comments/4264.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/rousso/commentrss.aspx?PostID=4264</wfw:commentRss><description>&lt;P&gt;I run into an issue today regarding Community Server 1.1 (CS 1.1).&lt;/P&gt;
&lt;P&gt;I changed the default language in communityServer.config from en-US to el-GR, only to get a runtime error.&lt;/P&gt;
&lt;P&gt;The change:&lt;/P&gt;&lt;FONT size=2&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;Core&lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;defaultLanguage&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;="el-GR"&lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt;&amp;nbsp;… &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;The error:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P&gt;&lt;FONT face="Arial, Helvetica, Geneva, SunSans-Regular, sans-serif "&gt;&lt;B&gt;&lt;FONT face=Verdana&gt;Description: &lt;/FONT&gt;&lt;/B&gt;An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. &lt;BR&gt;&lt;BR&gt;&lt;B&gt;&lt;FONT face=Verdana&gt;Exception Details: &lt;/FONT&gt;&lt;/B&gt;System.FormatException: Index (zero based) must be greater than or equal to zero and less than the size of the argument list.&lt;BR&gt;&lt;BR&gt;&lt;B&gt;&lt;FONT face=Verdana&gt;Source Error:&lt;/FONT&gt;&lt;/B&gt; &lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE bgColor=#ffffcc&gt;

&lt;TR&gt;
&lt;TD&gt;&lt;CODE&gt;Line 49: message = FindControl("Message") as Literal; &lt;BR&gt;Line 50: if(message != null) &lt;BR&gt;&lt;FONT color=red&gt;Line 51: message.Text = string.Format(ResourceManager.GetString("DisplayUserWelcome_AlternateUserWelcome"), CSContext.Current.SiteSettings.SiteName); &lt;BR&gt;&lt;/FONT&gt;&lt;/CODE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&lt;B&gt;&lt;FONT face=Verdana&gt;Source File: &lt;/FONT&gt;&lt;/B&gt;C:\Documents and Settings\rousso\My Documents\Visual Studio Projects\CS\1.1\50615src\src\Controls\User\AnonymousUserControl.cs&lt;B&gt;&lt;FONT face=Verdana&gt; &amp;nbsp;&amp;nbsp; Line: &lt;/FONT&gt;&lt;/B&gt;51 &lt;BR&gt;&lt;BR&gt;&lt;B&gt;&lt;FONT face=Verdana&gt;Stack Trace:&lt;/FONT&gt;&lt;/B&gt; &lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE bgColor=#ffffcc&gt;

&lt;TR&gt;
&lt;TD&gt;&lt;CODE&gt;[FormatException: Index (zero based) must be greater than or equal to zero and less than the size of the argument list.] System.Text.StringBuilder.AppendFormat(IFormatProvider provider, String format, Object[] args) +1232 &lt;BR&gt;System.String.Format(IFormatProvider provider, String format, Object[] args) +65 &lt;BR&gt;System.String.Format(String format, Object arg0) +47 &lt;BR&gt;CommunityServer.Controls.AnonymousUserControl.AttachChildControls()&amp;nbsp;&lt;BR&gt;CommunityServer.Controls.TemplatedWebControl.CreateChildControls()&amp;nbsp;&lt;BR&gt;System.Web.UI.Control.EnsureChildControls() +100 &lt;BR&gt;...&lt;BR&gt;System.Web.UI.Control.PreRenderRecursiveInternal() +125 &lt;BR&gt;System.Web.UI.Page.ProcessRequestMain() +1499 &lt;BR&gt;&lt;/CODE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/FONT&gt;
&lt;P&gt;After meddling around a a little bit I pin pointed the problem to a translation error.&lt;/P&gt;
&lt;P&gt;I turns out that the Greek language resource files located in /Languages/el-GR/Resources.xml were not properly (if at all) converted to reflect changes in code between version 1.0 and 1.1 of CS.&lt;/P&gt;
&lt;P&gt;This line was the problem:&lt;/P&gt;&lt;FONT size=2&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;resource&lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;name&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;="DisplayUserWelcome_AlternateUserWelcome"&amp;gt;&lt;/FONT&gt;&lt;FONT size=2&gt;Καλώς ορίσατε στο {0} {1}&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;/&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;resource&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/FONT&gt;
&lt;P&gt;There, two String.Format arguments are obviously expected. On the other hand, line 51 of AnonymousUserControl.cs, only passes one (see source error above).&lt;/P&gt;
&lt;P&gt;Removing the second placeholder from the format string solves the problem:&lt;/P&gt;&lt;FONT size=2&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;resource&lt;/FONT&gt;&lt;FONT color=#ff00ff size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;name&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;="DisplayUserWelcome_AlternateUserWelcome"&amp;gt;&lt;/FONT&gt;&lt;FONT size=2&gt;Καλώς ορίσατε στο {0}&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;/&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;resource&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/FONT&gt;
&lt;P&gt;The same stands for fr-FR (French) language resources I checked. Probably for others too.&lt;/P&gt;
&lt;P&gt;If you can read Greek see &lt;a href="http://www.dotnetzone.gr/cs/forums/4025/ShowPost.aspx" target=_blank&gt;my relevant posts in dotnetzone.gr&lt;/A&gt;. Also if you are looking&amp;nbsp;to solve the same problem for the&amp;nbsp;Greek (Hellenic) language&amp;nbsp;see &lt;a href="http://www.dotnetzone.gr/cs/forums/3013/ShowPost.aspx#3013" target=_blank&gt;these posts in dotnetzone.gr&lt;/A&gt; where you can get&amp;nbsp;the corrected translation for Greek text and buttons (it is attached to the post).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;IMG height=0 src="http://blog.rousso.gr/cptrk.ashx?id=f67944f7-6731-4277-b005-f84d9e14ca03" width=0&gt;&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=4264" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/tags/CS/default.aspx">CS</category></item><item><title>OK CrossPosting Works...</title><link>https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/2005/08/16/4263.aspx</link><pubDate>Tue, 16 Aug 2005 13:45:37 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:4263</guid><dc:creator>rousso</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/rousso/comments/4263.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/rousso/commentrss.aspx?PostID=4263</wfw:commentRss><description>&lt;p&gt;The problem seemed to be the name of my blog&amp;hellip;&lt;/p&gt;
&lt;p&gt;as soon as I manually changed the name in dasBlog&amp;rsquo;s site.Config from &amp;lsquo;rousso&amp;rsquo;s .net blog&amp;rsquo; to plain &amp;lsquo;rousso&amp;rsquo;, CS blog accepted my crossposts&amp;hellip;&lt;/p&gt;
&lt;p&gt;solved!&lt;/p&gt;&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=4263" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/tags/CS/default.aspx">CS</category></item><item><title>MetaBlogAPI for CS 1.1</title><link>https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/2005/08/05/4262.aspx</link><pubDate>Tue, 16 Aug 2005 13:43:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:4262</guid><dc:creator>rousso</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/rousso/comments/4262.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/rousso/commentrss.aspx?PostID=4262</wfw:commentRss><description>&lt;P&gt;I wanted to test &lt;A href="http://www.wbloggar.com/" target=_blank&gt;w.Bloggar &lt;/A&gt;and &lt;A href="http://blogjet.com/" target=_blank&gt;BlogJet&lt;/A&gt; today for posting in a &lt;A href="http://communityserver.org/"&gt;CS 1.1&lt;/A&gt; blog. MetaBlogAPI comes as a separate download from CS 1.1 so I tried to find and get it. Believe me I had a real hard time!&lt;/P&gt;
&lt;P&gt;After an hour or so of googling around for it, a &lt;a href="http://www.dotnetzone.gr/cs/forums/4042/ShowPost.aspx" target=_blank&gt;friend from dotnetzone.gr&lt;/A&gt; finally pointed me to it.&lt;/P&gt;
&lt;P&gt;Here it is:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;A href="http://www.telligentsystems.com/Solutions/license.aspx?File=cs_1.1_metablog"&gt;http://www.telligentsystems.com/Solutions/license.aspx?File=cs_1.1_metablog&lt;/A&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;If you need it, go get it… &lt;/P&gt;
&lt;P&gt;The other versions found in various posts in &lt;A href="http://communityserver.org/forums/" target=_blank&gt;communityserver.org/forums&lt;/A&gt; are usually older versions and will just give you a &lt;EM&gt;"Method not found: System.Collections.ArrayList COmmunityServer.Blogs.Components.Weblogs.GetWebLogs(CommunityServer.ComponentsUser,&amp;nbsp; Boolean, Boolean, Boolean). (EGetRecentError)"&lt;/EM&gt; error message. &lt;/P&gt;
&lt;P&gt;I wish they had a more standard place for it on the web than just a form post…&lt;/P&gt;&lt;/EM&gt;&lt;IMG height=0 src="http://blog.rousso.gr/cptrk.ashx?id=6e9b2f4f-4a02-4961-b53c-a5412f6ab9bc" width=0&gt;&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=4262" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/tags/CS/default.aspx">CS</category></item><item><title>Cross-Posting</title><link>https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/2005/08/16/4261.aspx</link><pubDate>Tue, 16 Aug 2005 13:29:35 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:4261</guid><dc:creator>rousso</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/rousso/comments/4261.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/rousso/commentrss.aspx?PostID=4261</wfw:commentRss><description>&lt;p&gt;I seem to have a problem cross-posting from dasBlog&amp;hellip;&lt;/p&gt;
&lt;p&gt;Can&amp;rsquo;t figure it out yet&amp;hellip;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=4261" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/tags/CS/default.aspx">CS</category></item><item><title>Hello World!</title><link>https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/2005/08/12/4204.aspx</link><pubDate>Sat, 13 Aug 2005 00:13:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:4204</guid><dc:creator>rousso</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/rousso/comments/4204.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/rousso/commentrss.aspx?PostID=4204</wfw:commentRss><description>&lt;P&gt;This is a “hello world” (test) posting to my new blog via BlogJet!&lt;/P&gt;
&lt;P&gt;How about that?!&lt;/P&gt;
&lt;P&gt;Next posting is going to be a cross-posting test from &lt;A href="http://blog.rousso.gr/" target=_blank&gt;my main blog&lt;/A&gt;….&lt;/P&gt;
&lt;P&gt;—-&lt;/P&gt;
&lt;P&gt;This is an edit with blogJet. If you read this line, then edits with blogJet work!&lt;/P&gt;&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=4204" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/tags/CS/default.aspx">CS</category></item><item><title>JavaScript - The World's Most Misunderstood Programming Language</title><link>https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/2005/07/19/4265.aspx</link><pubDate>Tue, 19 Jul 2005 20:10:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:4265</guid><dc:creator>rousso</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/blogs/rousso/comments/4265.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/blogs/rousso/commentrss.aspx?PostID=4265</wfw:commentRss><description>&lt;P&gt;Incredible article on Javascript! &lt;/P&gt;
&lt;P&gt;I have been programming Object Oriented languages for a very long time (since OO Turbo-Pascal in late 80’s). The truth is that I myself had probably misunderstood JavaScript. Why? Two sets of reasons: a) all those reasons described in the article mentioned bellow, b) as a result of a I devoted no time in studying it.&lt;/P&gt;
&lt;P&gt;Well, better late than never: From now on I am going to think twice when I need a piece of functionality on the client. &lt;/P&gt;
&lt;P&gt;Do read this article by Douglas Crockford: &lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.crockford.com/javascript/javascript.html" target=_blank&gt;JavaScript -&amp;nbsp;The World's Most Misunderstood Programming Language&lt;/A&gt;&lt;A href="http://www.crockford.com/javascript/javascript.html" target=_blank&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;P.S. Don’t&amp;nbsp;miss in the article above the link to the code for &lt;A href="http://www.crockford.com/javascript/inheritance.html" target=_blank&gt;inheritance in JavaScript&lt;/A&gt;. I am not going thought the cons of JavaScript here but in the pros compare it to inheritance models&amp;nbsp;supported by&amp;nbsp;C# and Java. &lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;BTW: What do you think of multiple inheritance. We used to be able to use it in the C++ days (C++ is still around but anyway). Do you miss it in C# or Java? (I mean multiple inheritance of classes not interfaces i.e. class c inherits class a and class b. In C# and Java you can inherit form max one class and implement as many interfaces as required. But of course interfaces do not include base implementations…).&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Also: Can you give me your best example where you really missed multiple inheritance?&lt;/EM&gt;&lt;/P&gt;&lt;IMG height=0 src="http://blog.rousso.gr/cptrk.ashx?id=2843af23-a3a3-4c11-88c4-b9bba9621f7f" width=0&gt;&lt;img src="https://www.dotnetzone.gr:443/cs/aggbug.aspx?PostID=4265" width="1" height="1"&gt;</description><category domain="https://www.dotnetzone.gr:443/cs/blogs/rousso/archive/tags/Web+Development/default.aspx">Web Development</category></item></channel></rss>