C# 动态添加行asp.net(单击按钮)-使用动态HTML-未显示行
我有一张桌子和一个钮扣。第一次加载页面时,会调用此方法,它工作得非常好。当我按下“New Slot”(新建插槽)按钮并调用此方法时,我可以在调试期间看到此表的row.count增加,但在浏览器中,不会呈现新的行(因此不会出现一行突然出现在另一行上的情况)。我在我的UI中使用了一个更新面板,但是无论有没有它,我都有相同的效果。我也尝试过在这个方法中每次重新添加表,但是只显示/呈现一行,但是如果我在行中键入一些内容,然后添加另一行,第一行中的内容就会丢失,可能是添加了行,删除了前一行?也许我必须使用viewstate?有人能告诉我正确的解决方法吗C# 动态添加行asp.net(单击按钮)-使用动态HTML-未显示行,c#,asp.net,html,C#,Asp.net,Html,我有一张桌子和一个钮扣。第一次加载页面时,会调用此方法,它工作得非常好。当我按下“New Slot”(新建插槽)按钮并调用此方法时,我可以在调试期间看到此表的row.count增加,但在浏览器中,不会呈现新的行(因此不会出现一行突然出现在另一行上的情况)。我在我的UI中使用了一个更新面板,但是无论有没有它,我都有相同的效果。我也尝试过在这个方法中每次重新添加表,但是只显示/呈现一行,但是如果我在行中键入一些内容,然后添加另一行,第一行中的内容就会丢失,可能是添加了行,删除了前一行?也许我必须使用
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>
private void AddSlot()
{
DropDownList ddlProfiles=新的DropDownList();
ddlProfiles.DataSource=DLProfiles.Instance.GetAllProfilesByGid(Int32.Parse(Session[“gid”].ToString());
ddlProfiles.DataTextField=“pName”;
ddlProfiles.DataBind();
TableRow行=新TableRow();
TableCell cellProfile=新的TableCell();
cellProfile.Controls.Add(ddlProfiles);
TableCell cellStart=新的TableCell();
TextBox startTime=new TextBox();
cellStart.Controls.Add(startTime);
TableCell cellEnd=新的TableCell();
TextBox endTime=新建TextBox();
cellEnd.Controls.Add(endTime);
row.Cells.Add(cellProfile);
row.Cells.Add(cellStart);
row.Cells.Add(cellEnd);
scheduleTable.Rows.Add(row);
}
您什么时候拨打AddSlot?
如果您希望它在任何页面请求后运行,无论是初始加载还是单击按钮,您都应该将其移动到“预呈现”…然后您的计时问题将得到调整。您何时调用AddSlot? 如果您希望它在任何页面请求后运行,无论是初始加载还是单击按钮,您都应该将其移动到“预呈现”…然后您的计时问题将得到调整