1
我在表和一個按鈕。第一次加載頁面時,這個方法被調用,它完美的工作。當我按下'New Slot'按鈕並且調用這個方法時,我可以在調試過程中看到row.count增加了這個表,但是在瀏覽器中,一個新的不被渲染(所以情況並非如此也許一行會彈出另一行)。我在我的用戶界面中使用更新面板,但有或沒有它我有相同的效果。我也嘗試每次在這個方法中重新添加表,但只有1行是SHOWN/RENDERED,但是如果我在行中鍵入某些內容,然後再添加一行,那麼第一行中的內容會丟失,可能是行正在被添加和前一個被刪除?也許我必須使用視圖狀態?有人能指導我找到合適的解決方案嗎?動態添加行asp.net(在按鈕點擊) - 使用動態HTML - 行未顯示
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>