ASP.NET中根据XML动态创建并使用WEB组件(二)

类别:.NET开发 点击:0 评论:0 推荐:

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