![]() |
#2
cyyu_ryh2007-05-28 16:45
|
想要在表格里动态生成几行web控件,其中最后一列为需要添加事件的按钮。
我用了循环来实现这个功能代码如下:
page_load中:
for(int j=0;j<arryse1.Count/4;j++)
{
HtmlTableRow row=new HtmlTableRow();
for(int i=0;i<4;i++)
{
HtmlTableCell cell=new HtmlTableCell();
cell.Style.Add("font-size","xx-small");
cell.Align="center";
cell.InnerText="华文新魏"+j.ToString();
row.Cells.Add(cell);
}
HtmlTableCell cell1=new HtmlTableCell();
cell1.InnerText="15";
row.Cells.Add(cell1);
HtmlTableCell cell2=new HtmlTableCell();
LinkButton delbutton=new LinkButton();
delbutton.Text="删除";
delbutton.CommandName=j.ToString ();
//Response.Write("<script>alert('"+j.ToString()+"');</script>");
delbutton.Command+=new CommandEventHandler(delbutton_Command);
cell2.Controls.Add(delbutton);
row.Cells.Add(cell2);
this.Table1.Rows.Insert(this.Table1.Rows.Count-1,row);
}
delbutton_command中:
ArrayList arryse=new ArrayList();
arryse=(ArrayList)Session["ar"];
if(arryse.Count>4)
{
for(int p=1;p<=arryse.Count/4;p++)
{
this.Table1.Rows.RemoveAt(1);
}
arryse.RemoveRange(Convert.ToInt32(e.CommandName)*4,4);
Session["ar"]=arryse;
for(int j=0;j<arryse.Count/4;j++)
{
HtmlTableRow row=new HtmlTableRow();
for(int i=0;i<4;i++)
{
HtmlTableCell cell=new HtmlTableCell();
cell.Style.Add("font-size","xx-small");
cell.InnerText=arryse[4*j+i].ToString();
cell.Align="center";
row.Cells.Add(cell);
}
HtmlTableCell cell1=new HtmlTableCell();
cell1.InnerText="15";
row.Cells.Add(cell1);
HtmlTableCell cell2=new HtmlTableCell();
LinkButton delbutton=new LinkButton();
delbutton.Text="删除";
cell2.Controls.Add(delbutton);
row.Cells.Add(cell2);
this.Table1.Rows.Insert(this.Table1.Rows.Count-1,row);
}
}
else
{
this.Table1.Rows.RemoveAt(1);
arryse.RemoveRange(0,4);
}
出现的情况为:
点击第一行生成的按钮会执行delbutton_command事件,可点击其它行的按钮时却不执行此事件。
这是怎么一回事!!请教!急!