将行添加到动态<table> </table>

时间:2012-06-04 18:45:41

标签: c# asp.net html-table

我在asp.net中有以下表格:

 <table style="width: 98%" id="tblOtherDoc">
    <tr>
       <td style="width: 10; text-align: left;">
          <span">Documents:</span>
       </td>
    </tr>
    <tr>
       <td>
          <asp:HiddenField ID="hidOtherPath" runat="server" Value='<%# Bind("UploadLocationOther") %>' />
          <a href="#" style="font-size: 12px; color: #2014FF; float: left; vertical-align: middle" onclick="uploadNew(this)">Add Other</a> <span style="float: left;">
          <asp:CheckBox ID="cbOther" runat="server" onclick="otherDocsClicked(this)" Checked='<%# Bind("OtherAttached") %>' /></span>
          <a href="#" style="font-size: 12px; color: #2014FF; float: left; vertical-align: middle" onclick="downloadFile(this)" title="docOther">View</a>
        </td>
     </tr>
  </table>

每次单击该复选框时,我都会使用jquery向表中添加一个新的确切行(以便可以添加多个文档)。

// Add new area for Other Document attachements
    function otherDocsClicked(row) {
        var isChecked = $(row).closest("tr").find("input[type=checkbox][id*=cbOther]").is(':checked');

        if (isChecked == true) {
            var clone = $('#tblOtherDoc tbody>tr:last').clone(true);
            clone.find("input[type='hidden'], select").val("");              
            clone.find("input[type='checkbox'], checked").removeAttr('checked');
            clone.insertAfter('#tblOtherDoc tbody>tr:last');
        }
    }

我想知道如何在返回已添加的文档列表时使用C#动态添加这些行。

或者,如果有人认为有更好的方法可以做到这一点,我会非常感谢任何输入,因为这是我能提出的唯一解决方案,它似乎给了我更多的麻烦。

2 个答案:

答案 0 :(得分:2)

您可以使用asp.net表格控件:

Table Control

EG。   在c#代码中添加一行:

TableRow row = new TableRow();
                TableCell cell = new TableCell();
                cell.Controls.Add(new TextBox());
                row.Cells.Add(cell);
                table.Rows.Add(row);

在.aspx页面中:

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

答案 1 :(得分:0)

使用Kapils答案,但从复选框中删除jquery代码。使用jquery附加到on on on on事件。在复选框详细信息中,不要使用onclick =“otherDocsClicked(this)”,为复选框添加一个类,例如。 chkDoSomething然后执行以下操作。

$(".chkDoSomething").live('change',function(){
     //your code goes here.
 }

然后你应该能够在c#中添加像Kapil建议的行,你的jquery仍然应该开火