动态添加行 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>

动态添加行 asp.net(单击按钮时) - 使用动态 HTML - 行不显示

你什么时候打电话给AddSlot?很有可能,如果您希望它在任何页面请求之后运行,无论是初始加载还是按钮单击,您都应该将其移动到"预渲染"......然后您的时间问题将被调整。