我做了个复合控件,包括literal textbox literal 就按这三个的顺序组合在一起.我有个设置页面用来设置其中一个的显示和值,比如: 姓名 textbox 收款 textbox 元
还有很多. 现在有三种方法: 1,通过建类,保存设置对象的值,在显示页应用.面临问题是:我一个控件建一个类那这类控件多了.要建多少类啊?
2,通过session保存,问题如上,那需要的session也多了 .
3,把这些设置的东西放在数据库,显示页再绑定.
请问我该怎么做呢?或者还有其他好的方法吗? 谢谢了!
还有很多. 现在有三种方法: 1,通过建类,保存设置对象的值,在显示页应用.面临问题是:我一个控件建一个类那这类控件多了.要建多少类啊?
2,通过session保存,问题如上,那需要的session也多了 .
3,把这些设置的东西放在数据库,显示页再绑定.
请问我该怎么做呢?或者还有其他好的方法吗? 谢谢了!
你想给他们传值?-------> 可以在用户控件.cs 中使用Get{}Set{}来定义控件的初始化~很简单,不必想的太复杂...
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) //初始化用户控件
{ ......... }
}
如果是有100个用户控件,那么只要写一次后台就可以,每次调用的时候,给它输入不同的参数,它会根据你给的参数来进行初始化...
这是设置页:
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; }
}
}是这样吗?
http://chs.gotdotnet.com/quickstart/aspplus/doc/webctrlauthoring.aspx#composition