<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://forums.asp.net/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>State Management</title><link>http://forums.asp.net/22.aspx</link><description>Managing ASP.NET state - ViewState, Application, Session, etc. &lt;a href="http://aspadvice.com/SignUp/list.aspx?l=69&amp;c=17" target="_blank"&gt;Email List&lt;/a&gt;</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Re: Custom Control problem with ViewState</title><link>http://forums.asp.net/thread/2502951.aspx</link><pubDate>Mon, 21 Jul 2008 12:18:02 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:2502951</guid><dc:creator>mpaterson</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/2502951.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=22&amp;PostID=2502951</wfw:commentRss><description>&lt;p&gt;No the button click is not in this custom control... it is in another, related custom control.&lt;br /&gt;I have two custom controls (1) ModeLinkButton and (2) EditableTextBox&lt;/p&gt;
&lt;p&gt;The concept is pretty simple:&lt;br /&gt;You can&amp;nbsp;register multiple instances of the EditableTextBox to a ModeLinkButton as listeners.&lt;br /&gt;When you click &amp;quot;Edit&amp;quot; in ModeLinkButton it will tell all of its subscribers (ie. EditableTextBoxes) to render as textboxes.&lt;br /&gt;Otherwise, EditableTextBox will render as a label.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Here is the click event from ModeLinkButton&lt;/p&gt;&lt;pre class="coloredcode"&gt;&lt;span class="kwd"&gt;void&lt;/span&gt; LinkButton_Click( &lt;span class="kwd"&gt;object&lt;/span&gt; sender, EventArgs e )
        {
            LinkButton lb = ( LinkButton )sender;

            &lt;span class="kwd"&gt;switch&lt;/span&gt;( lb.CommandName )
            {
                &lt;span class="kwd"&gt;case&lt;/span&gt; &lt;span class="st"&gt;&amp;quot;View&amp;quot;&lt;/span&gt;:
                    &lt;span class="kwd"&gt;this&lt;/span&gt;.State = Enums.State.Edit;

                    &lt;span class="kwd"&gt;foreach&lt;/span&gt;( IEditControl c &lt;span class="kwd"&gt;in this&lt;/span&gt;.Subscribers )
                        c.State = Enums.State.Edit;

                    &lt;span class="kwd"&gt;break&lt;/span&gt;;

                &lt;span class="kwd"&gt;case&lt;/span&gt; &lt;span class="st"&gt;&amp;quot;Cancel&amp;quot;&lt;/span&gt;:
                    &lt;span class="kwd"&gt;this&lt;/span&gt;.State = Enums.State.View;

                    &lt;span class="kwd"&gt;foreach&lt;/span&gt;( IEditControl c &lt;span class="kwd"&gt;in this&lt;/span&gt;.Subscribers )
                        c.State = Enums.State.View;

                    &lt;span class="kwd"&gt;break&lt;/span&gt;;

                &lt;span class="kwd"&gt;case&lt;/span&gt; &lt;span class="st"&gt;&amp;quot;Apply&amp;quot;&lt;/span&gt;:
                    &lt;span class="kwd"&gt;this&lt;/span&gt;.State = Enums.State.View;

                    &lt;span class="kwd"&gt;foreach&lt;/span&gt;( IEditControl c &lt;span class="kwd"&gt;in this&lt;/span&gt;.Subscribers )
                        c.State = Enums.State.Apply;

                    &lt;span class="kwd"&gt;break&lt;/span&gt;;

                &lt;span class="kwd"&gt;default&lt;/span&gt;:
                    &lt;span class="kwd"&gt;throw new&lt;/span&gt; ApplicationException( &lt;span class="st"&gt;&amp;quot;Invalid LinkButton CommandName.&amp;quot;&lt;/span&gt; );
            }
        }&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Here is the EditableTextBox State property:&lt;/p&gt;&lt;pre class="coloredcode"&gt;[DefaultValue( Motivano.Constants.Enums.State.View )]
        &lt;span class="kwd"&gt;public&lt;/span&gt; Motivano.Constants.Enums.State State
        {
            &lt;span class="kwd"&gt;get&lt;/span&gt;
            {
                &lt;span class="kwd"&gt;if&lt;/span&gt;( HttpContext.Current.Session[ &lt;span class="kwd"&gt;this&lt;/span&gt;.ID + &lt;span class="st"&gt;&amp;quot;_State&amp;quot;&lt;/span&gt; ] == &lt;span class="kwd"&gt;null&lt;/span&gt; )
                {
                    &lt;span class="kwd"&gt;this&lt;/span&gt;.State = Motivano.Constants.Enums.State.View;
                }

                &lt;span class="kwd"&gt;return&lt;/span&gt; ( Motivano.Constants.Enums.State )HttpContext.Current.Session[ &lt;span class="kwd"&gt;this&lt;/span&gt;.ID + &lt;span class="st"&gt;&amp;quot;_State&amp;quot;&lt;/span&gt; ];
            }
            &lt;span class="kwd"&gt;set&lt;/span&gt;
            {
                HttpContext.Current.Session[ &lt;span class="kwd"&gt;this&lt;/span&gt;.ID + &lt;span class="st"&gt;&amp;quot;_State&amp;quot;&lt;/span&gt; ] = &lt;span class="kwd"&gt;value&lt;/span&gt;;

                &lt;span class="kwd"&gt;if&lt;/span&gt;( &lt;span class="kwd"&gt;value&lt;/span&gt; == Motivano.Constants.Enums.State.Apply )
                {
                    Update( );
                }
            }
        }&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;As you can see in the setter, if the state is &amp;quot;Apply&amp;quot; then we call the EditableTextbox controls Update() method:&lt;/p&gt;&lt;pre class="coloredcode"&gt;&lt;span class="kwd"&gt;private void&lt;/span&gt; Update( )
        {
            &lt;span class="kwd"&gt;if&lt;/span&gt;( &lt;span class="kwd"&gt;this&lt;/span&gt;.Txt != &lt;span class="kwd"&gt;null&lt;/span&gt; )
                &lt;span class="kwd"&gt;this&lt;/span&gt;.Value = &lt;span class="kwd"&gt;this&lt;/span&gt;.Txt.Text;

            &lt;span class="kwd"&gt;this&lt;/span&gt;.State = Motivano.Constants.Enums.State.View;
        }&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;The Update() method simply grabs the value from the textbox and plops it into the Value property:&lt;/p&gt;&lt;pre class="coloredcode"&gt;[DefaultValue( &lt;span class="st"&gt;&amp;quot;&amp;quot;&lt;/span&gt; )]
        &lt;span class="kwd"&gt;public string&lt;/span&gt; Value
        {
            &lt;span class="kwd"&gt;get&lt;/span&gt;
            {
                &lt;span class="kwd"&gt;if&lt;/span&gt;( ViewState[ &lt;span class="kwd"&gt;this&lt;/span&gt;.ID + &lt;span class="st"&gt;&amp;quot;_Value&amp;quot;&lt;/span&gt; ] == &lt;span class="kwd"&gt;null&lt;/span&gt; )
                    &lt;span class="kwd"&gt;this&lt;/span&gt;.Value = String.Empty;

                &lt;span class="kwd"&gt;return&lt;/span&gt; ViewState[ &lt;span class="kwd"&gt;this&lt;/span&gt;.ID + &lt;span class="st"&gt;&amp;quot;_Value&amp;quot;&lt;/span&gt; ].ToString( );
            }

            &lt;span class="kwd"&gt;set&lt;/span&gt;
            {
                ViewState[ &lt;span class="kwd"&gt;this&lt;/span&gt;.ID + &lt;span class="st"&gt;&amp;quot;_Value&amp;quot;&lt;/span&gt; ] = &lt;span class="kwd"&gt;value&lt;/span&gt;;
            }
        }&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;So anyhow, let me know if you see anything that is sticking out!&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;</description></item><item><title>Re: Custom Control problem with ViewState</title><link>http://forums.asp.net/thread/2502498.aspx</link><pubDate>Mon, 21 Jul 2008 08:14:58 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:2502498</guid><dc:creator>My Crystal</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/2502498.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=22&amp;PostID=2502498</wfw:commentRss><description>&lt;p&gt;hi,mpaterson &lt;/p&gt;
&lt;p&gt;The button clicked is within your custom control.Right?&lt;/p&gt;
&lt;p&gt;I don&amp;#39;t have any detailed idea about the cause of your problem. But one basic rule--make sure the viewstate you saved is not reset by your custom control&amp;#39;s code in the later stages of the custom control&amp;#39;s lifecycle.&lt;/p&gt;
&lt;p&gt;Do you mind post the custom control&amp;#39;s code?&lt;/p&gt;</description></item><item><title>Re: Custom Control problem with ViewState</title><link>http://forums.asp.net/thread/2501413.aspx</link><pubDate>Sun, 20 Jul 2008 14:42:50 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:2501413</guid><dc:creator>mpaterson</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/2501413.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=22&amp;PostID=2501413</wfw:commentRss><description>&lt;p&gt;I&amp;#39;m setting these viewState values during a button click event.&lt;br /&gt;Is this too late?&lt;/p&gt;
&lt;p&gt;The click event fires, then in preRender CreateChildControls() is being called.&lt;br /&gt;It is in CreateChildControls() that I need the updated ViewState values.&lt;/p&gt;</description></item><item><title>Re: Custom Control problem with ViewState</title><link>http://forums.asp.net/thread/2501239.aspx</link><pubDate>Sun, 20 Jul 2008 11:42:21 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:2501239</guid><dc:creator>Dr.Osika</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/2501239.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=22&amp;PostID=2501239</wfw:commentRss><description>&lt;p&gt;&amp;nbsp;Hi,&lt;/p&gt;&lt;p&gt;You can access the viewstate value on the Prerend event&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Re: Custom Control problem with ViewState</title><link>http://forums.asp.net/thread/2501223.aspx</link><pubDate>Sun, 20 Jul 2008 11:08:22 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:2501223</guid><dc:creator>gavinharriss</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/2501223.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=22&amp;PostID=2501223</wfw:commentRss><description>Just a guess... you might be setting ViewState values in part of page&amp;#39;s lifecycle where it&amp;#39;s not getting persisted? Too late?&lt;br /&gt;</description></item><item><title>Custom Control problem with ViewState</title><link>http://forums.asp.net/thread/2500774.aspx</link><pubDate>Sat, 19 Jul 2008 18:03:05 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:2500774</guid><dc:creator>mpaterson</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/2500774.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=22&amp;PostID=2500774</wfw:commentRss><description>&lt;p&gt;I have a custom composite control and am storing a string value in ViewState.&lt;br /&gt;When I click a button I&amp;#39;m updating it&amp;#39;s value to a new string and persisting it to ViewState.&lt;br /&gt;However, when CreateChildControls() is called the ViewState value is reset.&lt;br /&gt;This works fine when I use Session but I&amp;#39;d rather avoid that if possible.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Any ideas?&lt;/p&gt;</description></item></channel></rss>