经前面一个帖子,一些朋友指点后,用下面的代码就可以动态显示一个label。
新问题:
如何在类node里完成页面page_load()中的
this.form1.Controls.Add(N.LB);
的功能?
也就是说,在node的show()里即完全实现显示而不用在页面的事件里再来做这个动作?
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;public partial class _Default : System.Web.UI.Page
{
public class node
{
public Label LB;
public int X, Y;
public void show()
{
LB = new Label();
LB.Visible = true;
LB.Text = "ddd";
}
}
protected void Page_Load(object sender, EventArgs e)
{
node N = new node();
N.show();
this.form1.Controls.Add(N.LB);
}
}
新问题:
如何在类node里完成页面page_load()中的
this.form1.Controls.Add(N.LB);
的功能?
也就是说,在node的show()里即完全实现显示而不用在页面的事件里再来做这个动作?
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;public partial class _Default : System.Web.UI.Page
{
public class node
{
public Label LB;
public int X, Y;
public void show()
{
LB = new Label();
LB.Visible = true;
LB.Text = "ddd";
}
}
protected void Page_Load(object sender, EventArgs e)
{
node N = new node();
N.show();
this.form1.Controls.Add(N.LB);
}
}
{
public class node
{
private Page _parent = null;
public node(Page parent)
{
this._parent = parent;
} public Label LB;
public int X, Y;
public void show()
{
LB = new Label();
LB.Visible = true;
LB.Text = "ddd"; this._parent.form1.Controls.Add(this.LB);
}
}
protected void Page_Load(object sender, EventArgs e)
{
node N = new node(this);
N.show();
}
}
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;public partial class _Default : System.Web.UI.Page
{
public class node
{
private Page _parent = null;
public node(Page parent)
{
this._parent = parent;
} public Label LB;
public int X, Y;
public void show()
{
LB = new Label();
LB.Visible = true;
LB.Text = "ddd";
this._parent.Controls.Add(this.LB);
}
}
protected void Page_Load(object sender, EventArgs e)
{
node N = new node(this);
N.show();
// this.form1.Controls.Add(N.LB);
}
}这样没有错了。稍微改了一下: this._parent.Controls.Add(this.LB);没有用form1
因为你这样做的话,dom模型变了
关于用javascript可能出错的问题,如果我不将
this._parent.Controls.Add(this.LB);中的form1去掉,vs2005生成页面就报错了。
关于动态生成控件显示的另一个问题,如何在页面上定位该控件的显示位置?
查了Label等,没有位置属性。
不好意思
这几天写javascript写晕了,是我的错,上面的代码是直接手写的,没有到vs2005里面编译,^_^webform跟windowsform不一样的,不会有什么location的
你可以放一个div到页面上,控制其显示位置,然后将这个label加入到这个东西里面
当然,你也可以用table定位或者就是直接使用gridlayout,而不用flowlayout
感谢坚持信念!结贴。