1

我在 c# 中动态创建了一个包含 2 列的表:第一列使用 SqlDataReader 从存储过程中获取其数据,第二列由文本框组成,与第一列一样长。最后,表格被放置在占位符中并显示在 UI 上。它背后的想法确实构建了一个表单,完成后,有一个按钮必须从每个文本框中获取值并将其保存在数据库的表中。

HtmlTableRow row;
HtmlTableCell cell;
HtmlTableCell celltf;
TextBox text;

protected void createTables(){
HtmlTable dataTable = new HtmlTable();
HtmlTableRow header = new HtmlTableRow();

    while (rdr.Read())
    {
        row = new HtmlTableRow();

        for (int j = 0; j < rdr.FieldCount; j++)
        {
            cell = new HtmlTableCell();
            cell.InnerText = (rdr.GetValue(j)).ToString();

            celltf = new HtmlTableCell();
            text = new TextBox();
            celltf.Controls.Add(text);

            row.Cells.Add(cell);
            row.Cells.Add(celltf);
        }
        dataTable.Rows.Add(row);
    }
    dataTable.DataBind();
}

单击按钮时,从每个文本框中获取值的最佳方法是什么?因为 Button_clicked() 是一个单独的函数。

4

1 回答 1

0

我不能保证这像: http: //lukieb.blogspot.co.uk/2009/03/event-handlers-with-dynamic-controls.html因为它略有不同,但如果你总是重新创建相同的page_load 中的控件数量,我认为当您回发到事件处理程序时,表单将正确设置它们的所有值。然后,您应该能够在桌子上进行一组简单的 foreach 调用。大概您的表是在 aspx 页面上声明的,或者以其他方式添加到页面控件中,而不仅仅是在本地创建?

于 2012-09-21T14:42:31.520 回答