动态地将复选框插入到表中.NET中可变数量的字段.c#代码后面

本文关键字:字段 代码 复选框 插入 NET 动态 | 更新日期: 2023-09-27 18:18:09

我正在构建一个从SQL Server 2008数据库填充的豁免请求表单。

DataRow[] exemption = ds.Tables[2].Select();
    foreach (DataRow dr in exemption)
    {
        string exemptionType = dr["ExemptionType"].ToString();
        string exemptionID = dr["ExemptionID"].ToString();
        string exemptionDesc = dr["ExemptionDescription"].ToString();
        string displayLabel = dr["DisplayLabel"].ToString();
        sb.Append("<table align='center' width='730px'>");
        sb.Append("<tr><td><asp:CheckBox ID='"chk" + exemptionID + "'" runat='"server'" /></td>");
        sb.Append("<td><strong>" + exemptionDesc + "</strong></td>");
        sb.Append("</table>");
        sb.Append("<table align='center' width='630px'>");
        sb.Append("<tr><td>" + displayLabel + "</td></tr>");
        sb.Append("</table>");
    }
    return sb.ToString();

现在,表构建正常,所有数据显示正常,但是复选框没有显示出来。我想知道如果这样做是可能的,如果是这样,我做错了什么?

动态地将复选框插入到表中.NET中可变数量的字段.c#代码后面

您正在插入ASP。NET放入HTML中,而HTML可能不会被ASP.NET处理。如果你想按照你现在的方式去做……切换到使用input标签,像这样…

DataRow[] exemption = ds.Tables[2].Select(); 
foreach (DataRow dr in exemption) 
{ 
  string exemptionType = dr["ExemptionType"].ToString(); 
  string exemptionID = dr["ExemptionID"].ToString(); 
  string exemptionDesc = dr["ExemptionDescription"].ToString(); 
  string displayLabel = dr["DisplayLabel"].ToString(); 
  sb.Append("<table align='center' width='730px'>"); 
  sb.Append("<tr><td><input type='"checkbox'" id='"chk" + exemptionID + "'" /></td>"); 
  sb.Append("<td><strong>" + exemptionDesc + "</strong></td>"); 
  sb.Append("</table>"); 
  sb.Append("<table align='center' width='630px'>"); 
  sb.Append("<tr><td>" + displayLabel + "</td></tr>"); 
  sb.Append("</table>"); 
} 
return sb.ToString(); 

另一种方法是实际创建ASP。净复选框。它看起来像这样…

  var checkbox = new CheckBox();
  checkbox.ID = "chk" + exemptionId;
  wrapper.Controls.Add(checkbox);

其中包装器是Panel或类似的东西