1

我有桌子和一个按钮。第一次加载页面时,会调用此方法并且它运行良好。当我按下“New Slot”按钮并调用此方法时,我可以在调试过程中看到该表的 row.count 增加,但在浏览器中,不会呈现新的(因此并非如此也许一排突然出现在另一排上)。我在我的 UI 中使用更新面板,但无论有没有它,我都有相同的效果。我也尝试在这种方法中每次都重新添加表,但是只有 1 行是 SHOWN/RENDERED,但是如果我在该行中键入一些内容,然后再添加一个,则第一行中的内容丢失了,可能是该行正在添加而前一个被删除?也许我必须使用视图状态?有人可以指导我找到正确的解决方案吗?

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>
4

1 回答 1

1

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

于 2012-06-11T18:27:50.607 回答