我正在使用C#代碼處理ASP.NET網站。 現在,當我以編程方式創建自定義控件時,麻煩就開始了。該控件顯示在面板中,但是當我點擊控件的其中一個按鈕時,它什麼也不做。如果我點擊他們兩次,用戶控件消失。 使用調試器,我發現它正在做回發,這很奇怪,因爲我嘗試使用按鈕並將usesubmitbehavior
設置爲false
;它仍然發送回傳。ASP.NET:自定義控件重新加載整頁
這裏就是控制插在default.aspx
文件
<asp:UpdatePanel runat="server" ID="contentHolderUpdatePanel"
UpdateMode="Conditional">
<ContentTemplate>
<asp:Panel runat="server" ID="contentPanel">
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
這裏是從控制的ListadoAuditoria
的ASPX。
<asp:UpdatePanel runat="server" ID="auditorTableUpdatePanel" UpdateMode="Conditional">
<ContentTemplate>
<asp:Table runat="server" ID="auditorTable" BorderWidth="0" Width="100%">
<asp:TableHeaderRow HorizontalAlign="Center">
<asp:TableHeaderCell>Button
</asp:TableHeaderCell>
</asp:TableHeaderRow>
</asp:Table>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel runat="server" ID="formHolderUpdatePanel" UpdateMode="Conditional">
<ContentTemplate>
<asp:Label runat="server" ID="testLabel" Text="bbbbbbbbbbbbb" ></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
該按鈕調用應該從「bbbbbbbbbbbbb」到「AAAAAAAAAAA」標籤testLabel
的文本改變的方法。顯然,我在修改文本後正在執行auditorTableUpdatePanel.Update()
。
控制CS
protected void Page_Load(object sender, EventArgs e)
{
loadAudits();
}
public void loadAudits()
{
for(int i=0;i<10;++i)
{
TableRow row = new TableRow();
TableCell cell1 = new TableCell();
ImageButton deleteButton = new ImageButton();
deleteButton.ImageUrl = "~/image.gif";
deleteButton.Click += generateNewPart;
deleteButton.EnableViewState = true;
deleteButton.ID = i.ToString();
cell1.Controls.Add(deleteButton);
row.Cells.Add(cell1);
auditorTable.Rows.Add(row);
}
}
public void generateNewPart(object sender, EventArgs e)
{
tumadre.Text = "aaaaaaaaaaaa";
formHolderUpdatePanel.Update();
}
這裏是代碼時,我產生了控制,並將其插入面板:
Panel panel = (Panel)Page.FindControl("contentPanel");
UpdatePanel updatePanel = (UpdatePanel)Page.FindControl("contentHolderUpdatePanel");
ListadoAuditorias listadoAuditorias = (ListadoAuditorias)LoadControl("~/CargaDeAuditoria/ListadoAuditorias.ascx");
panel.Controls.Add(listadoAuditorias);
updatePanel.Update();
我看着在互聯網上,並沒有發現任何東西。
您發佈的html中不存在'contentPanel'或'contentHolderUpdatePanel'。 – fearofawhackplanet 2010-08-04 15:03:02
我可以把它放在它所在的位置,如果它需要的話 – ShinyDarkStone 2010-08-04 15:13:37
如果你能用一個非常簡單的例子重新創建問題,那麼最好的辦法是讓人們更容易看到發生了什麼。你會得到更多的幫助。 – fearofawhackplanet 2010-08-04 15:15:56