【问题标题】:How to add more cells to dynamically generated html with colspan?如何使用 colspan 向动态生成的 html 添加更多单元格?
【发布时间】:2015-03-18 13:23:24
【问题描述】:

我正在通过用户输入生成动态表,即行数和列数,这工作正常,现在我需要做的是,再次从用户那里获取输入以向指定行添加更多列。我坚持接近,还有什么我可以尝试到达目的地。请帮忙

生成动态表的CS文件代码:

    public void create_table( int row, int col)
        {
            int row = Convert.ToInt32(txtrow.Text);     // No. of Rows
            int col = Convert.ToInt32(txtcol.Text);            
          for (int i = 0; i < row; i++)
            {

                HtmlTableRow rows = new HtmlTableRow();         //a new Row
                for (int j = 0; j < col; j++)
                {

                    HtmlTableCell cell = new HtmlTableCell(); //a new Cell
                    //cell.InnerHtml = i + "," + j;             //Insert Data into Cell
                    cell.Align = "Center";
                    Label lbl = new Label();
                    //htmlTable1.Controls.Add(t
                    //create_label(j,i);
                    cell.ID = i + "," + j;
                    rows.ID = Convert.ToString(i);
                    int rowncount = rows.Controls.Count;
                    int columncount = rows.Controls.Count;
                    //lbl1.Text = Convert.ToString();
                    cell.BgColor = "red";
                   // cell.Width = "700px";
                    htmlTable1.Width = "700px";
                    htmlTable1.Border = 0;
                    htmlTable1.CellPadding = 0;
                    htmlTable1.CellSpacing = 5;
                    rows.Cells.Add(cell);
                    // rows.Cells.Add(cell);
                    htmlTable1.Rows.Add(rows);
                    cell.Controls.Add(lbl);
                    lbl.Text = i + "," + j;
                    lbl.ID = i + "," + j;
                    //cell.InnerHtml = ".";
                }
            }
        }

到目前为止,代码工作正常,但我需要申请,将单元格动态添加到特定行,行号将由用户自己输入。 还想检查每个“tr”中每个 td 的宽度 新方法受到高度赞赏。

   NEED Out Put:
    <table border="0" cellpadding="0" cellspacing="0" width="700">
        <tr>
          <td align="left" valign="top" width="31">&nbsp;</td>
          <td align="left" valign="top" width="646"></td>
          <td align="left" valign="top" width="23">&nbsp;</td>
        </tr>
       <tr>
          <td align="left" valign="top" width="31" colspan="3"></td>
        </tr>
    </table>

【问题讨论】:

  • 您为什么不使用像GridView 这样的Web 数据绑定控件和像DataTable 这样的数据源,这会让您的生活更轻松。另外,为什么需要固定宽度?
  • 我没有使用gridview,因为也没有包含数据库,主要动机是生成一个动态表,并为该表获取HTML。具有固定宽度的原因是,在不同的 . 中填充图像
  • 您不需要数据库就可以使用GridViewDataTable。然而,真正的问题是什么?你在哪里卡住了?您提到“到目前为止代码运行良好”,但是您的新需求有什么困难?
  • 我一直在坚持如何满足这一要求。我需要创建一个动态表并获取该 HTML 表的代码。无论添加多少行和列。
  • 关于您的代码的一些注意事项 1.您的表格样式(如颜色、填充)应位于 CSS 文件中,而不是 C# 代码中 2. 最好为您的 htmlTable1 设置有意义的名称变量

标签: c# html asp.net


【解决方案1】:

一种可能的解决方案是操纵表格客户端。这样可以避免与服务器进行不必要的通信。
您可以根据用户输入使用 jquery 来操作 html 来实现它。

Here is a gist(代码不是我的)在这里您可以获取用户输入的列和行,并据此呈现表格。

另一种选择是使用 jquery 插件来操作表格。这些插件有很多(从超级简单到非常复杂),您的选择将取决于您的需求和要求。

除了在google上搜索,你可以看到一个jquery表操作插件列表here at jquery.com和另一个列表here

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签