我有一个动态制作的行<asp:Table>
;其中每个cell
都有一个用户控件。在<asp:Button>
点击后,我调用了一个函数,该函数使用后面代码中的表ID
向表中添加了另一行用户控件。问题是它只向表中添加了一行。这可能是因为数据不存在或其他原因(我不太确定)。
<asp:UpdatePanel
ID="UpdatePanel1"
UpdateMode="Conditional"
runat="server">
<ContentTemplate>
<!-- Table update/add -->
<div class="table-controls">
<asp:button type="button" class="ui left floated positive button" runat="server" OnClick="TableAdd_OnClick" Text="New Row">
</asp:button>
<asp:button type="button" class="ui right floated positive button" runat="server" OnClick="TableSave_OnClick" Text="Save">
</asp:button>
</div>
<!-- Table update/add -->
<!-- Flex Table -->
<asp:Table
ID="Table"
class="table table-bordered table-striped table-hover sortable"
Style="width: 100%; margin-top: 0; padding-top: 0; overflow: auto;"
runat="server">
<asp:TableHeaderRow
ID="TableHeader"
Style="color: White; background-color: #2E2E2E;"
runat="server">
</asp:TableHeaderRow>
<!-- Dynamic User Controls -->
<asp:TableFooterRow>
</asp:TableFooterRow>
</asp:Table>
<!-- Flex Table -->
</ContentTemplate>
</asp:UpdatePanel>
protected void TableAdd_OnClick(object sender, EventArgs e)
{
var tr = new TableRow();
foreach (var col in DataSource)
{
var td = new TableCell();
switch (col.Item1)
{
case "Type":
td.Controls.Add(col.Item3(""));
break;
case "Account Name":
td.Controls.Add(col.Item3(""));
break;
case "Applications":
td.Controls.Add(col.Item3(""));
break;
case "Accounting Date":
td.Controls.Add(col.Item3(""));
break;
case "Post Date":
td.Controls.Add(col.Item3(""));
break;
case "Amount":
td.Controls.Add(col.Item3(""));
break;
case "":
td.Controls.Add(col.Item3(""));
break;
default:
break;
}
tr.Cells.Add(td);
}
Table.Rows.Add(tr);
}
如何更新此表,以便在每次单击时实际添加一个新行。我调查了ChildControlsCreated
,但我还没有弄清楚如何使用它来解决这个问题。