protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (ViewState["Count"] != null)
{
Addtr();
}
}
}
public void Addtr()
{
for (int i = 0; i < Convert.ToInt32(ViewState["Count"]); i++)
{
HtmlTableRow r = new HtmlTableRow(); HtmlTableCell tc = new HtmlTableCell();
tc.InnerText = "IP Address " + (i + 2).ToString();
HtmlTableCell tc1 = new HtmlTableCell();
TextBox tx = new TextBox();
tx.ID = tc.InnerText + "StartIP";
tc1.Controls.Add(tx);
HtmlTableCell tc2 = new HtmlTableCell();
TextBox tx1 = new TextBox();
tx1.ID = tc.InnerText + "EndIp";
tc2.Controls.Add(tx1);
HtmlTableCell tc3 = new HtmlTableCell();
LinkButton lk = new LinkButton();
lk.ID = "del" + (i + 2).ToString();
lk.Text = "Delete";
lk.CommandArgument = "lk_Click";
tc3.Controls.Add(lk);
r.Cells.Add(tc);
r.Cells.Add(tc1);
r.Cells.Add(tc2);
r.Cells.Add(tc3);
t.Rows.Add(r);
}
}
public void lk_Click(object sender, EventArgs e)
{
LinkButton lk = (LinkButton)sender;
int index = Convert.ToInt32( lk.ID.Substring(3, 1));
t.Rows.RemoveAt(index);
if (!IsPostBack)
{
ViewState["Count"] = 0;
}
else
{
ViewState["Count"] = Convert.ToInt32(ViewState["Count"]) - 1; }
if (ViewState["Count"] != null)
{
Addtr(); } } protected void lk2_Click(object sender, EventArgs e)
{
ViewState["Count"] = Convert.ToInt32(ViewState["Count"]) + 1;
Addtr();
}代码就是在一个table里面动态添加行,行里有服务器控件。现在就是无论我在Addtr中的lk.Click+=***或者lk.command+=***都没法绑定事件,触发不了.我知道生命周期如果把Addtr放到Page_load这里面就可以 但是不是不能很好的使用,在不破坏现在的结构下,能不能绑定linkbutton的事件啊?求高手指导啊
再补充点 如果我要删除 按照IP1 ip2 ip3 我要删除ip2这一行,然后ip3这一行就变成ip2这一行依次类推这个要怎么实现啊
不理解asp.net而一味地乱写asp.net程序,你的bug会越来越离谱。那么你还不如直接扔掉asp.net而从轻量级的html/javascript入手来考虑web编程。
http://www.cnblogs.com/insus/archive/2011/12/01/2270455.html
http://www.cnblogs.com/insus/archive/2012/09/24/2700658.html
http://www.cnblogs.com/insus/archive/2012/10/09/2717420.html
我们每个人不都是一出来就很牛逼,什么都会,什么都能理解?我想每个人做每件事情都是从头开始的吧?我不信就你开始就是巅峰?你用你十几年甚至几十年的经验来说像我这样毫无大型项目开发经验,毫无技术性开发经历的人我肯定毫无辩驳的能力.谁学asp.net一来就去研究底层?谁学asp.net一来就把他理解的很透彻?还有“不是不能很好的使用”是我打错字了,我想表达的是如果把addtr放到page_load方法中,我要使用add按钮click方法添加行就很麻烦。我承认我技术很渣,但是至少我有学习的态度。你想想你自己最开始编程时是怎么样的,我就不相信你一开始什么bug都没有,什么低级问题都没出过?“结果愤青编程方式造成连基本功能都不能实现,那么还不如先接受你认为“不是很好”的代码,再来问。” 我不愤青 一点都不,我如果接受这个代码我就不用来问了。
如果你下次再回答这种低级问题你先给个解决方案,然后再来说,最后你要是能提供针你所说的学习资料那就更好了,谢谢你,不过你这种方式很难让人接受。
我看你的blog了,发现是因为我吧addtr方法放在!ISpostback中 才没有绑定事件的,现在还不知道为什么,自己研究研究
]
每次页面刷新都需要重新添加那些控件和事件,
楼主利用一个午休或者晚自习的时间就可以了解清楚webform页面的工作机制,磨刀不误砍柴工
生命周期这些我都明白,可能在这个问题上有点想不通,思路没理清晰。我想实现的是点击一次add就要添加一行,行里一个linkbutton要绑定事件,注册事件必须要在page_load或者是找个之前的事件里注册才可以。我就是觉得这里思路不清晰,最后看了insus的博客有所领悟。对生命周期还不了解吧~