1

私はテーブルとボタンを持っています。ページが初めてロードされると、このメソッドが呼び出され、完全に機能します。「New Slot」ボタンを押してこのメ​​ソッドが呼び出されると、デバッグ中にこのテーブルの row.count が増加することを確認できますが、ブラウザーでは new がレンダリングされません (したがって、そうではありませんある行が別の行にポップする可能性があります)。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>
4

1 に答える 1

1

AddSlot を呼び出すのはいつですか? 初期ロードであろうとボタンクリックであろうと、ページリクエストの後に実行したい場合は、「Pre-Render」に移動する必要があります...その後、タイミングの問題が調整されます.

于 2012-06-11T18:27:50.607 に答える