【问题标题】:Programmatically Creating fieldset, ol/ul and li tags in ASP.Net, C#在 ASP.Net、C# 中以编程方式创建字段集、ol/ul 和 li 标签
【发布时间】:2011-07-06 11:22:28
【问题描述】:

我需要编写一个 ASP.Net 表单,它将生成以下 HTML:

<fieldset>   
<legend>Contact Details</legend>   
<ol>   
<li>   
<label for="name">Name:</label>   
<input id="name" name="name" class="text" type="text" />   
</li>   
<li>   
<label for="email">Email address:</label>   
<input id="email" name="email" class="text" type="text" />   
</li>   
<li>   
<label for="phone">Telephone:</label>   
<input id="phone" name="phone" class="text" type="text" />   
</li>   
</ol>   
</fieldset>  

但是,要添加到表单中的字段将在运行时确定,因此我需要在运行时创建字段集并向其中添加有序列表和列表项,并酌情使用标签、文本框、复选框等。

我找不到可以创建这些标签的标准 ASP.Net 对象。

例如,我想在 C# 中执行以下操作:

FieldSet myFieldSet = new FieldSet();
myFieldSet.Legend = “Contact Details”;
OrderedList myOrderedList = new OrderedList();

ListItem listItem1 = new ListItem();
ListItem listItem2 = new ListItem();
ListItem listItem3 = new ListItem();

// code here which would add labels and textboxes to the ListItems

myOrderedList.Controls.Add(listItem1);
myOrderedList.Controls.Add(listItem2);
myOrderedList.Controls.Add(listItem3);

myFieldSet.Controls.Add(myOrderedList);

Form1.Controls.Add(myFieldSet);

是否有任何标准的 ASP.Net 对象可以产生这种结果,或者是否有其他方法可以达到相同的结果?

马特

【问题讨论】:

    标签: c# asp.net tags fieldset


    【解决方案1】:

    你可以试试这个:

    Panel myFieldSet = new Panel();
    myFieldSet.GroupingText= “Contact Details”;
    HtmlGenericControl myOrderedList = new HtmlGenericControl("ol");
    
    HtmlGenericControl listItem1 = new HtmlGenericControl ("li");
    HtmlGenericControl listItem2 = new HtmlGenericControl ("li");
    HtmlGenericControl listItem3 = new HtmlGenericControl ("li");
    
    // code here which would add labels and textboxes to the ListItems
    
    myOrderedList.Controls.Add(listItem1);
    myOrderedList.Controls.Add(listItem2);
    myOrderedList.Controls.Add(listItem3);
    
    myFieldSet.Controls.Add(myOrderedList);
    
    Form1.Controls.Add(myFieldSet);
    

    【讨论】:

    【解决方案2】:

    根据上面的答案,我有一个实例证明数组很有用,如此处所示。注意:我在 id="ulNoTree" 的 aspx 代码中创建了一个无序列表。

    int NumFloorsCt = 10;
    LinkButton[] rgBL;
    HtmlGenericControl[] rgLI;
    
    /// <summary>
    /// set up an array of LinkButtons with "li" controls
    /// - each LinkButton click is handled by the same event handler
    /// </summary>
    void SetUpLinkButtons(List<FLOOR> listFloorRecs)
    {
      NumFloorsCt = 10;
      rgBL = new LinkButton[NumFloorsCt];
      rgLI = new HtmlGenericControl[NumFloorsCt];
    
      for (int i = 0; i < NumFloorsCt; i++)
      {
        rgBL[i] = new LinkButton();
        rgBL[i].ID = LB_ID_prefix + listFloorRecs[i].ID;
        rgBL[i].Click += new System.EventHandler(LB_fp_Click);
        rgBL[i].Text = listFloorRecs[i].DESCRIP;
        rgBL[i].ToolTip = "Click here to display floor info";
    
        rgLI[i] = new HtmlGenericControl("li");
        rgLI[i].Controls.Add(rgBL[i]);
    
        ulNoTree.Controls.Add(rgLI[i]);
      }
    }
    
    /// <summary>
    /// event handler for any of the link buttons
    /// </summary>
    protected void LB_fp_Click(object sender, EventArgs e)
    {
      LinkButton btn = (LinkButton)(sender);
      // do your action here
    }
    

    【讨论】:

      猜你喜欢
      • 2018-10-23
      • 2012-03-30
      • 2018-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-07
      • 1970-01-01
      • 2013-07-04
      相关资源
      最近更新 更多