动态添加行 asp.net(单击按钮时) - 使用动态 HTML - 行不显示
本文关键字:动态 显示 HTML asp 添加行 net 按钮 单击 | 更新日期: 2023-09-27 18:32:01
我在桌子上有一个按钮。第一次加载页面时,将调用此方法,并且它工作正常。当我按下"New Slot"按钮并调用此方法时,我能够在调试期间看到此表的row.count增加,但在浏览器中,不会呈现新内容(因此情况并非如此,也许一行弹出另一行)。我正在我的 UI 中使用更新面板,但无论有没有它,我都有相同的效果。我也尝试每次在此方法中重新添加表,但只有 1 行显示/呈现,但是如果我在该行中键入某些内容,然后添加另一个,第一行中的内容会丢失,可能是该行正在添加而前一行被删除?也许我必须使用视图状态?有人可以指导我找到正确的解决方案吗?
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>
你什么时候打电话给AddSlot?很有可能,如果您希望它在任何页面请求之后运行,无论是初始加载还是按钮单击,您都应该将其移动到"预渲染"......然后您的时间问题将被调整。