我嘗試使用.ascx文件的自定義控件加載ASP頁面中的多個控件,單擊按鈕事件。如何從單個.ascx文件加載ASP.net頁面中的多個用戶控件
這裏是我的.ascx文件:
<%@ Control Language="VB" ClassName="CHelloWorld" %>
<script runat="server">
</script>
<asp:Panel ID="panel" runat="server">
hello world!
</asp:Panel>
現在我創建一個按鈕.aspx文件,並在其中我添加控件每次使用點擊按鈕面板:
<asp:Panel runat="server" id="panelcontrols">
</asp:Panel>
<asp:Button id="myButton" OnClick="OnClickButton" Text="Add" />
這裏是click事件我.vb文件:
Sub OnClickButton(ByVal sender As Object, ByVal e As System.EventArgs)
Dim myControl As Control
myControl = LoadControl("myfile.ascx")
panelcontrols.Controls.Add(myControl )
End Sub
使用這種實現,當我點擊第一次:我看到「Hello World!」在我的頁面中,但是當我第二次點擊時,第三次......沒有變化發生!
是因爲我只能從.ascx加載一個控件嗎?
如何從單個.ascx文件創建多個控件?
謝謝。
[編輯]
OK,我現在用的WiewState記住已經創建控件。謝謝。
但是我有一個問題:
我.aspx文件使用代碼在.vb文件與這條線在@Page指令(其中,我已經定義OnClickButton):SRC =「[路徑] /myscript.vb 。
但在這個.vb文件,我不知道如何使用CHelloWorld控制類型,修改控件屬性
如果我用這個代碼,它不工作:
Sub OnClickButton(ByVal sender As Object, ByVal e As System.EventArgs)
Dim myControl As CHelloWorld
myControl = LoadControl("myfile.ascx")
panelcontrols.Controls.Add(myControl )
End Sub
它沒有說「CHelloWorld」未定義!
我該怎麼辦?
你知道viewstate是打開還是關閉? – rhughes
我使用ViewState編輯過文章,感謝您的回答。 – TheFrancisOne