ASP.NET動(dòng)態(tài)添加控件一例
我的方法是,可以通過Session來保存上次的狀態(tài),一種解法如下:
Test.aspx關(guān)鍵代碼:
<form id="form1" runat="server">
<asp:DropDownList ID="DropDownList1" runat="server">
<asp:ListItem>1</asp:ListItem>
<asp:ListItem>2</asp:ListItem>
<asp:ListItem>3</asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="DropDownList2" runat="server">
<asp:ListItem>a</asp:ListItem>
<asp:ListItem>b</asp:ListItem>
<asp:ListItem>c</asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="DropDownList3" runat="server">
<asp:ListItem>A</asp:ListItem>
<asp:ListItem>B</asp:ListItem>
</asp:DropDownList>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
<asp:Panel ID="Panel1" runat="server">
</asp:Panel>
<asp:Button ID="Button2" runat="server" Text="最后一個(gè)Button" />
</form>
Test.aspx.cs關(guān)鍵代碼:
protected void Page_Load(object sender, EventArgs e)
{
if (Session["Panel1"] != null)
{
int index = this.Form.Controls.IndexOf(Panel1);
this.Form.Controls.RemoveAt(index);
Panel1 = Session["Panel1"] as Panel;
this.Form.Controls.AddAt(index, Panel1);
}
}
protected void Button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < 3; i++)
{
Label label = new Label();
DropDownList ddl = this.FindControl("DropDownList" + (i + 1).ToString()) as DropDownList;
label.Text = ddl.SelectedValue;
Panel1.Controls.Add(label);
}
Literal br = new Literal();
br.Text = "<br/>";
Panel1.Controls.Add(br);
Session["Panel1"] = Panel1;
}
當(dāng)頁面回發(fā)時(shí),先記下Panel1在控件樹中的位置,并移除它,然后從Session變量獲取上次添加后的Panel1,并添加到控件樹中原來的位置,在這基礎(chǔ)上繼續(xù)添加新的Label控件。最后的那個(gè)Button是為了測(cè)試之用,作用有二:一是幫助查看添加的位置是否正確,二是用于檢測(cè)空回發(fā)時(shí)是否能維持上次的狀態(tài)。
- ASP.NET服務(wù)器端控件RadioButtonList,DropDownList,CheckBoxList的取值、賦值用法
- asp.net 用戶控件讀取以及賦值
- asp.net GridView控件中模板列CheckBox全選、反選、取消
- asp.net+jquery滾動(dòng)滾動(dòng)條加載數(shù)據(jù)的下拉控件
- Asp.net 菜單控件簡(jiǎn)潔版
- ASP.NET 頁面中動(dòng)態(tài)增加的控件、添加事件
- asp.net Datalist控件實(shí)現(xiàn)分頁功能
- asp.net fileupload控件上傳文件與多文件上傳
- asp.net分頁控件AspNetPager的樣式美化
- asp.net Menu控件+SQLServer實(shí)現(xiàn)動(dòng)態(tài)多級(jí)菜單
- asp.net 動(dòng)態(tài)生成控件并獲取其值
- asp.net動(dòng)態(tài)加載用戶控件,關(guān)于后臺(tái)添加、修改的思考
- asp.net顯示圖片到指定的Image控件中 具體實(shí)現(xiàn)
- asp.net簡(jiǎn)單頁面控件賦值實(shí)現(xiàn)方法
相關(guān)文章
使用UserControl做網(wǎng)站導(dǎo)航條的思路 分析
使用UserControl做網(wǎng)站導(dǎo)航條的思路 分析...2007-09-09ASP.NET Core中預(yù)壓縮靜態(tài)文件的方法步驟
這篇文章主要給大家介紹了關(guān)于ASP.NET Core中如何預(yù)壓縮靜態(tài)文件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用ASP.NET Core具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03Asp.Net 網(wǎng)站優(yōu)化系列之?dāng)?shù)據(jù)庫優(yōu)化措施 使用主從庫(全)
網(wǎng)站規(guī)模到了一定程度之后,該分的也分了,該優(yōu)化的也做了優(yōu)化,但是還是不能滿足業(yè)務(wù)上對(duì)性能的要求;這時(shí)候我們可以考慮使用主從庫。2010-06-06ASP.NET與MySQL數(shù)據(jù)庫簡(jiǎn)明圖示入門教程
ASP.NET與MySQL數(shù)據(jù)庫簡(jiǎn)明圖示入門教程...2006-09-09SignalR中豐富多彩的消息推送方式的實(shí)現(xiàn)代碼
這篇文章主要介紹了SignalR中豐富多彩的消息推送方式的實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04aspx實(shí)現(xiàn)的 jquery ui 的 flexgrid demo
這幾天沒事研究著jquery,真是個(gè)好東西,慢慢的知道了有jquery ui,一開始就被華麗的界面和簡(jiǎn)單的操作給吸引了,尤其是里面的flexgrid,對(duì)我而言可以說是非常寶貴的東西2009-12-12asp.net顯示相同數(shù)字相乘的結(jié)果,直到數(shù)值大于150為止
老師布置Insus.NET做的第二道題,題目如標(biāo)題。感興趣的網(wǎng)友也可以練習(xí)練習(xí)?,F(xiàn)在Insus.NET的作答如下,但老師還沒有看,因此答案是否正確或是最好的,還不能確定,只是供參考2012-05-05ASP.NET技巧:教你制做Web實(shí)時(shí)進(jìn)度條
ASP.NET技巧:教你制做Web實(shí)時(shí)進(jìn)度條...2006-09-09ASP.NET2.0數(shù)據(jù)庫入門之SQL Server
ASP.NET2.0數(shù)據(jù)庫入門之SQL Server...2006-09-09未能加載文件或程序集“XXX”或它的某一個(gè)依賴項(xiàng)。試圖加載格式不正確的程序。
如果你將應(yīng)用程序生成x86而不是Any CPU時(shí),在64位操作系統(tǒng)中不會(huì)出錯(cuò)錯(cuò)誤,而在32位操作系統(tǒng)中可能會(huì)出現(xiàn)以下錯(cuò)誤2012-11-11