ASP.net循环通过表

时间:2010-03-21 14:23:26

标签: asp.net html-table

我想知道是否有人可以帮助我;我有一张表格如下所示:

<table id="Table1" border="0">
    <tr>
        <td><b>1.</b> Question 1</td>
    </tr><tr>
        <td style="border-width:5px;border-style:solid;"></td>
    </tr><tr>
        <td align="left" style="width:1000px;"><input id="Radio1" type="radio" name="Group1" value="Radio1" /><label for="Radio1">Answer1</label></td>
    </tr><tr>
        <td align="left" style="width:1000px;"><input id="Radio1" type="radio" name="Group1" value="Radio1" /><label for="Radio1">Answer2</label></td>
    </tr><tr>
        <td align="left" style="width:1000px;"><input id="Radio1" type="radio" name="Group1" value="Radio1" /><label for="Radio1">Answer3</label></td>
    </tr><tr>
        <td align="left" style="width:1000px;"><input id="Radio1" type="radio" name="Group1" value="Radio1" /><label for="Radio1">Answer4</label></td>
    </tr><tr>
        <td style="height:30px;"></td>
    </tr><tr>
        <td><b>2.</b> Question 2</td>
    </tr><tr>
        <td style="border-width:5px;border-style:solid;"></td>
    </tr><tr>
        <td align="left" style="width:1000px;"><input id="Radio2" type="radio" name="Group2" value="Radio2" /><label for="Radio2">yes</label></td>
    </tr><tr>
        <td align="left" style="width:1000px;"><input id="Radio2" type="radio" name="Group2" value="Radio2" /><label for="Radio2">no</label></td>
    </tr><tr>
        <td style="height:30px;"></td>
    </tr>
</table>

如何循环浏览每组单选按钮并获取所选单选按钮的文本?

上面显示的代码是动态创建的......在我的aspx文件中,我有以下代码:

   <asp:Table ID="Table1" runat="server">
        </asp:Table> 

3 个答案:

答案 0 :(得分:3)

如果要访问ASP.NET中的行(在服务器端),则需要将表,行和单元格转换为服务器控件(使用runat =“server”)并遍历控件中的表

编辑:: - 如果您按照以下方式添加行,单元格和radion按钮,它们都将是服务器控件(并且是runat = server),以便您可以按照方式访问它们我在上面提到过: -

// Create new row and add it to the table.
TableRow tRow = new TableRow();
table1.Rows.Add(tRow);
for (cellCtr = 1; cellCtr <= cellCnt; cellCtr++)
{
// Create a new cell and add it to the row.   
TableCell tCell = new TableCell();
RadioButton rdb = new RadioButton();
rdb.ID = "rdb_" + cellCtr.ToString();
rdb.Text = "radio button";
rdb.GroupName = "rdbGroup";
tCell.Controls.Add(rdb);
tRow.Cells.Add(tCell);
}

修改: -

您可以在每个单元格中找到控件。如下所示: -

foreach(TableCell cell in tableRow.Cells)
{
      foreach(Control ctrl in cell.Controls)
      {
      if(ctrl is RadioButton)
      {
         if(ctrl.Selected)
          {
             string rdValue=ctrl.Text;
          }
      }
      }

}

或者如果您想使用Javascript在客户端进行迭代,请查看here并且您不必应用runat =“server”。

答案 1 :(得分:2)

听起来你的标记页面中有一个准系统<table>,然后动态添加<input>

考虑采用这种方法:

  1. runat="server"属性添加到您的表格中。
  2. 在您添加这些<input>代码的代码中,添加一个新的RadioButton控件。在此处使用您可以预测的ID。如果选择按逻辑分组,也许您可​​以使用RadioButtonList
  3. 目前还不清楚您是否手动将<tr><td>添加为字符串。考虑new TableRow()new TableCell()的选项。然后使用RadioButton
  4. 将新的TableCell.Controls添加到tc.Controls.Add(myNewRadioButton);集合中
  5. 在您的回发代码中,只需RadioButton引用您的id控件,或者循环浏览Controls的{​​{1}}集合属性。
  6. Table1

答案 2 :(得分:0)

将所有控件转换为服务器控件(通过添加runat =“server”属性)。然后,您可以以编程方式访问您需要的内容o。服务器。