ASP.NET中根据XML动态创建使用WEB组件
(二)
三、动态创建WEB组件。
先来看程序实例:
private void createconfigtable(int totalnum,int[] sequenceint,string[] namestr,string[] ipstr) { //根据得到测量点的总数,动态生成输入框 for(int i=1;i<=totalnum;i++) { //创建表格 HtmlTable showtable = new HtmlTable(); showtable.Border=0; showtable.ID="showtable"+i.ToString(); showtable.BorderColor="#000000"; showtable.CellPadding=4; showtable.CellSpacing=4; showtable.Align="center"; myPlaceHolder.Controls.Add(showtable); //创建一行 HtmlTableRow tRow = new HtmlTableRow(); showtable.Rows.Add(tRow); //创建第一列(序号) HtmlTableCell tCell = new HtmlTableCell(); Label sequenceLabel = new Label(); sequenceLabel.ID="sequenceLabel"+i.ToString(); sequenceLabel.Text="序号:"; sequenceLabel.Enabled=true; tCell.Controls.Add(sequenceLabel); tRow.Cells.Add(tCell); //创建第二列 tCell = new HtmlTableCell(); sequencedataTB = new TextBox(); sequencedataTB.ID="sequencedataTB"+i.ToString(); sequencedataTB.Text=i.ToString(); sequencedataTB.Width=30; sequencedataTB.Text=sequenceint[i].ToString(); sequencedataTB.ReadOnly=false; //创建第三列(名称) tCell = new HtmlTableCell(); Label nameLabel = new Label(); nameLabel.ID="nameLabel"+i.ToString(); nameLabel.Text="名称:"; nameLabel.Enabled=true; tCell.Controls.Add(nameLabel); tRow.Cells.Add(tCell); //创建第四列 tCell = new HtmlTableCell(); nameTB=new TextBox(); nameTB.ID="nameTB"+i.ToString(); nameTB.Width=120; nameTB.Text=namestr[i]; nameTB.MaxLength=50; tCell.Controls.Add(nameTB); tRow.Cells.Add(tCell); //创建第五列(IP) tCell = new HtmlTableCell(); Label ipLabel = new Label(); ipLabel.ID="ipLabel"+i.ToString(); ipLabel.Text="IP:"; ipLabel.Enabled=true; tCell.Controls.Add(ipLabel); tRow.Cells.Add(tCell); //创建第六列 tCell = new HtmlTableCell(); ipTB=new TextBox(); ipTB.ID="ipTB"+i.ToString(); ipTB.Width=120; ipTB.Text=ipstr[i]; ipTB.MaxLength=15; tCell.Controls.Add(ipTB); tRow.Cells.Add(tCell); } } tCell.Controls.Add(sequencedataTB); tRow.Cells.Add(tCell); … … //创建第五列(IP) tCell = new HtmlTableCell(); Label ipLabel = new Label(); ipLabel.ID="ipLabel"+i.ToString(); ipLabel.Text="IP:"; ipLabel.Enabled=true; tCell.Controls.Add(ipLabel); tRow.Cells.Add(tCell); //创建第六列 tCell = new HtmlTableCell(); ipTB=new TextBox(); ipTB.ID="ipTB"+i.ToString(); ipTB.Width=120; ipTB.Text=ipstr[i]; ipTB.MaxLength=15; tCell.Controls.Add(ipTB); tRow.Cells.Add(tCell); } }
程序中的myPlaceHolder 是 System.Web.UI.WebControls.PlaceHolder 组件,使用该组件的HTML语法如下:
… … <tr> <td> <asp:PlaceHolder id="myPlaceHolder" runat="server"></asp:PlaceHolder> </td> </tr> … …
使用该组件的目的是为了定位动态创建的表格。该组件在页面上的位置即为动态创建的表格的位置。
程序中另外一个要说明的地方是动态创建的组件的ID的设定。组件的ID的设定要注意两点:
1、ID号不能重复
2、要便于在程序中使用。因为要在程序中使用动态创建的组件,要通过该组件的ID来查找。(关于这一点,在“使用动态创建的WEB组件”部分会有较为详细的介绍)
本文地址:http://com.8s8s.com/it/it44769.htm