当前位置:编程学习 > C#/ASP.NET >>

请教各位大虾:禁用viewstate的页面后台怎样获得控件的属性值?

为了缩小页面的体积,本人想通过这种方式优化一番。

在网上查了很多资料,都没有实现这种做法的具体办法,只查到某些说法如下:只要启动控件状态,并把这两个方法的逻辑放到LoadControlState和SaveControlState中,仍然可以利用ViewState。

散分求助,请各位高手不吝赐教,在此先谢过了。 --------------------编程问答-------------------- 你可以用 form表达 提交数据。 --------------------编程问答-------------------- --------------------编程问答-------------------- Request.Form[""]取值 --------------------编程问答-------------------- 如果是开发自定义控件一般会用到LoadControlState和SaveControlState.但ControlState默认也是存在页面中的Hidden标签中的,所以你页面还是瘦不下来
--------------------编程问答-------------------- http://msdn.microsoft.com/en-us/library/1whwt1k7.aspx
这是个在自定义控件中把数据存在ControlState中的一个例子 --------------------编程问答--------------------

这是个把页面中的TextBox中的两个属性存在ControlSate中的个例子
        protected override void LoadControlState(object savedState)
        {
            if (savedState != null)
            {
                Pair p = savedState as Pair;
                if (p != null)
                {
                    base.LoadControlState(p.First);
                    ArrayList values =  (ArrayList)p.Second;
                    txtStartPeriodNum.ToolTip = values[0].ToString();
                    txtStartPeriodNum.BackColor = (Color)values[1];
                }
                else
                {
                    if (savedState is ArrayList)
                    {
                        ArrayList values = (ArrayList)savedState;
                        txtStartPeriodNum.ToolTip = values[0].ToString();
                        txtStartPeriodNum.BackColor = (Color)values[1];
                    }
                    else
                    {
                        base.LoadControlState(savedState);
                    }
                }
            }
        }

        protected override object SaveControlState()
        {
            object obj = base.SaveControlState();

            ArrayList values = new ArrayList();

            values.Add(txtStartPeriodNum.ToolTip);
            values.Add(txtStartPeriodNum.BackColor);

            
                if (obj != null)
                {
                    return new Pair(obj, values);
                }
                else
                {
                    return (values);
                }
        }
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,