我做了个复合控件,包括literal textbox literal 就按这三个的顺序组合在一起.我有个设置页面用来设置其中一个的显示和值,比如:  姓名 textbox           收款  textbox  元
还有很多. 现在有三种方法: 1,通过建类,保存设置对象的值,在显示页应用.面临问题是:我一个控件建一个类那这类控件多了.要建多少类啊?
2,通过session保存,问题如上,那需要的session也多了 .
3,把这些设置的东西放在数据库,显示页再绑定.
请问我该怎么做呢?或者还有其他好的方法吗? 谢谢了!

解决方案 »

  1.   

    不是太明白,你在说什么,到底想实现什么...就我看:似乎你定义了一个用户控件,里面有包括literal textbox literal 等...
    你想给他们传值?-------> 可以在用户控件.cs 中使用Get{}Set{}来定义控件的初始化~很简单,不必想的太复杂...
      

  2.   

    示例:
    public class chaxun : System.Web.UI.UserControl
    {
      protected System.Web.UI.WebControls.Label Label1;
      protected System.Web.UI.WebControls.TextBox TextBox1;
      protected System.Web.UI.WebControls.DropDownList lei;
      protected System.Web.UI.WebControls.DropDownList bijiao;
      protected System.Web.UI.WebControls.DropDownList andor;
      private string leibie;  public string Leibie
      {
    get
    {
      return(this.leibie);
    }
    set
    {
      this.leibie = value;
      chax_chushi(leibie);   //这是一个用来初始化的函数,当Leibie值被赋予时触发
    }
      }
      private void Page_Load(object sender, System.EventArgs e)
      {  }
      private void chax_chushi(string myleibie)    //初始化用户控件
      { ......... }
    }
      

  3.   

    “我有100个这样的控件”,不知道你说的“控件”是指“用户控件”还是“里面的textbox控件”.........?如果是有100个textbox,如果你都要对它们进行不同设置,那么的确,你需要写100个Get{}Set{}参数...
    如果是有100个用户控件,那么只要写一次后台就可以,每次调用的时候,给它输入不同的参数,它会根据你给的参数来进行初始化...
      

  4.   

    我的是复合控件,不是用户控件.姓名 textbox    收款  textbox  元  公司 textbox
    这是设置页:
     protected void Button1_Click(object sender, EventArgs e)
        {
            if (x.Checked)
            {
                display1 = 1;
            }
            else
            {
                display1 = 0;
            }
            if (t.Checked)
            {
                tab1 = 1;
            }
            else
            {
                tab1 = 0;
            }
            length1 = l.Text.ToString().Trim();
            leng = Convert.ToInt32((length1));  
            front1 = front.Text.ToString().Trim();
             back1 = back.Text.ToString().Trim();
            if (bt.Checked)
            {
                must2 = 1;
            }
            else
            {
                must2 = 0;
            }
            if (xz.Checked)
            {
                xianzhi1 = 1;
            }
            else
            {
                xianzhi1 = 0;
            }
    这是显示页:
     Designs design = new Designs();
            if (design.display == 1)
            {
                LiteralTextBox1.Visible = true;
            }
            else
            {
                LiteralTextBox1.Visible = false;
            }
            LiteralTextBox1.tabindext = design.tab;
            LiteralTextBox1.Width = design.length;
            LiteralTextBox1.Text = design.front1.ToString();
            LiteralTextBox1.Text2 = design.back.ToString();
            if (design.must == 1)
            {
                LiteralTextBox1.Visable1 = true;
            }
            else
            {
                LiteralTextBox1.Visable1 = false;
            }
    这是写的类:
    public class Designs
    {
        public Designs()
        {
            //
            // TODO: 在此处添加构造函数逻辑
            //
        }     // 定义变量
        private int _display;
        private short _tab;
        private int _length;
        private string _front;
        private string _back;
        private int _must;
        // 重载构造函数   
        public Designs(int display, short tab, int length, string front1, string back, int must)
        {
            _display = display;
            _tab = tab;
            _length = length;
            _front = front1;
            _back = back;
            _must = must;
        }
        public int display
        {
            get { return _display; }
            set { _display = value; }
        }
        public short tab
        {
            get { return _tab; }
            set { _tab = value; }
        }
        public int length
        {
            get { return _length; }
            set { _length = value; }
        }
        public string front1
        {
            get { return _front; }
            set { _front = value; }
        }
        public string back
        {
            get { return _back; }
            set { _back = value; }
        }
        public int must
        {
            get { return _must; }
            set { _must = value; }
        }
    }是这样吗?   
      

  5.   

    你这个是“复合控件”?
    http://chs.gotdotnet.com/quickstart/aspplus/doc/webctrlauthoring.aspx#composition
      

  6.   

    在其他页中当然还是要重新实例化此类,然后重新设置一下...如果你只是想把若干个WEB控件集合在一起,为什么不用“用户控件”呢?
      

  7.   

    好象在petshop中,初始化了对象,在其他页就可以应用他的属性了.今天继续郁闷啊!
      

  8.   

    我已经解决 了通过server.transfer可以传对象,但这些东西都永不上了.再次谢谢  康