1
我在表和一个按钮。第一次加载页面时,这个方法被调用,它完美的工作。当我按下'New Slot'按钮并且调用这个方法时,我可以在调试过程中看到row.count增加了这个表,但是在浏览器中,一个新的不被渲染(所以情况并非如此也许一行会弹出另一行)。我在我的用户界面中使用更新面板,但有或没有它我有相同的效果。我也尝试每次在这个方法中重新添加表,但只有1行是SHOWN/RENDERED,但是如果我在行中键入某些内容,然后再添加一行,那么第一行中的内容会丢失,可能是行正在被添加和前一个被删除?也许我必须使用视图状态?有人能指导我找到合适的解决方案吗?动态添加行asp.net(在按钮点击) - 使用动态HTML - 行未显示
private void AddSlot()
{
DropDownList ddlProfiles = new DropDownList();
ddlProfiles.DataSource = DLProfiles.Instance.GetAllProfilesByGid(Int32.Parse(Session["gid"].ToString()));
ddlProfiles.DataTextField = "pName";
ddlProfiles.DataBind();
TableRow row = new TableRow();
TableCell cellProfile = new TableCell();
cellProfile.Controls.Add(ddlProfiles);
TableCell cellStart = new TableCell();
TextBox startTime = new TextBox();
cellStart.Controls.Add(startTime);
TableCell cellEnd = new TableCell();
TextBox endTime = new TextBox();
cellEnd.Controls.Add(endTime);
row.Cells.Add(cellProfile);
row.Cells.Add(cellStart);
row.Cells.Add(cellEnd);
scheduleTable.Rows.Add(row);
}
<asp:UpdatePanel ID="pnlSchedTable" runat="server">
<ContentTemplate>
<div id="divCurrentSchedule" runat="server">
<h3 id="scheduleTitle" runat="server">
</h3>
<asp:Table ID="scheduleTable" runat="server">
<asp:TableHeaderRow ID="rowHeaders" runat="server">
<asp:TableHeaderCell Text="Profile Name" />
<asp:TableHeaderCell Text="Start time" />
<asp:TableHeaderCell Text="End time" />
</asp:TableHeaderRow>
</asp:Table>
<asp:Button ID="btnNewSlot" runat="server" OnClick="btnNewSlot_Click" Text="New Slot" />
</div></ContentTemplate>
</asp:UpdatePanel>