C#后臺(tái)創(chuàng)建控件并獲取值的方法
本文實(shí)例講述了C#后臺(tái)創(chuàng)建控件并獲取值的方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:
前臺(tái)代碼:
<div>
<div class="item">
Please input a number:
<asp:TextBox runat="server" CssClass="item" ID="txtTextCount"></asp:TextBox>
<asp:Button runat="server" ID="btnCreate" Text="Create TextBox List" ValidationGroup="CreateTextBox"
OnClick="btnCreate_Click" />
<asp:Button runat="server" ID="btnOK" Text="獲取控件值" ValidationGroup="ShowListContent"
OnClick="btnOK_Click" />
</div>
<div runat="server" id="divControls" class="item">
</div>
<div runat="server" id="divMessage">
</div>
</div>
</form>
后臺(tái)代碼:
{
if (this.IsPostBack)
{
int txtCount = int.Parse(txtTextCount.Text);
// 注意:每次PostBack時(shí),都需要重新動(dòng)態(tài)創(chuàng)建TextBox
CreateTextBoxList(txtCount);
}
}
///<summary>
/// Create textbox list
///</summary>
///<param name="num">textbox list count</param>
private void CreateTextBoxList(int num)
{
HtmlGenericControl div;
HtmlGenericControl span;
TextBox txt;
//RegularExpressionValidator rev;
for (int i = 0; i < num; i++)
{
//創(chuàng)建div
div = new HtmlGenericControl();
div.TagName = "div";
div.ID = "divTextBox" + i.ToString();
div.Attributes["class"] = "item2";
//創(chuàng)建span
span = new HtmlGenericControl();
span.ID = "spanTextBox" + i.ToString();
span.InnerHtml = "Url Address" + (i + 1).ToString() + ":";
//創(chuàng)建TextBox
txt = new TextBox();
txt.ID = "txt" + i.ToString();
txt.CssClass = "input";
//創(chuàng)建格式驗(yàn)證控件,并且將其關(guān)聯(lián)到對(duì)應(yīng)的TextBox
//rev = new RegularExpressionValidator();
//rev.ID = "rev" + i.ToString();
//rev.ControlToValidate = txt.ID;
//rev.Display = ValidatorDisplay.Dynamic;
//rev.ValidationGroup = "ShowListContent";
//rev.ValidationExpression = @"(http(s)?://)?([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?";
//rev.ErrorMessage = "Invalid url Address!";
//添加控件到容器
div.Controls.Add(span);
div.Controls.Add(txt);
//div.Controls.Add(rev);
divControls.Controls.Add(div);
}
}
protected void btnCreate_Click(object sender, EventArgs e)
{
txtTextCount.Enabled = false;
btnCreate.Enabled = false;
}
protected void btnOK_Click(object sender, EventArgs e)
{
TextBox txt;
HtmlGenericControl span;
StringBuilder sbResult = new StringBuilder();
int txtCount = int.Parse(txtTextCount.Text);
//遍歷獲取動(dòng)態(tài)創(chuàng)建的TextBox們中的Text值
for (int i = 0; i < txtCount; i++)
{
//注意:這里必須通過上層容器來獲取動(dòng)態(tài)創(chuàng)建的TextBox,才能獲取取ViewState內(nèi)容
txt = divControls.FindControl("txt" + i.ToString()) as TextBox;
if (txt != null && txt.Text.Trim().Length > 0)
{
sbResult.AppendFormat("Url Address{0}: {1}.<br />", i + 1, txt.Text.Trim());
}
}
//遍歷獲取動(dòng)態(tài)創(chuàng)建的TextBox們中的Text值
for (int i = 0; i < txtCount; i++)
{
//注意:這里必須通過上層容器來獲取動(dòng)態(tài)創(chuàng)建的TextBox,才能獲取取ViewState內(nèi)容
span = divControls.FindControl("spanTextBox" + i.ToString()) as HtmlGenericControl ;
if (span != null && span.InnerText.Trim().Length > 0)
{
sbResult.AppendFormat("Url Address{0}: {1}.<br />", i + 1, span.InnerText.Trim());
}
}
divMessage.InnerHtml = sbResult.ToString();
}
希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。
- C# Winform 子窗體訪問父級(jí)窗體的控件和屬性
- C#使用Aspose.Cells控件讀取Excel
- C#實(shí)現(xiàn)多選項(xiàng)卡的瀏覽器控件
- C#實(shí)現(xiàn)用戶自定義控件中嵌入自己的圖標(biāo)
- C#實(shí)現(xiàn)讀取DataSet數(shù)據(jù)并顯示在ListView控件中的方法
- C#實(shí)現(xiàn)DataGridView控件行列互換的方法
- C#日期控件datetimepicker保存空值的三種方法
- C#多線程與跨線程訪問界面控件的方法
- C#實(shí)現(xiàn)簡(jiǎn)單的loading提示控件實(shí)例代碼
相關(guān)文章
c# n個(gè)數(shù)排序?qū)崿F(xiàn)代碼
c# n個(gè)數(shù)排序?qū)崿F(xiàn)代2009-07-07Unity UI實(shí)現(xiàn)循環(huán)播放序列圖
這篇文章主要為大家詳細(xì)介紹了Unity UI實(shí)現(xiàn)循環(huán)播放序列圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08C#實(shí)現(xiàn)簡(jiǎn)易計(jì)算器功能(2)(窗體應(yīng)用)
這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)簡(jiǎn)易計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01C#在DataTable中根據(jù)條件刪除某一行的實(shí)現(xiàn)方法
我們通常的方法是把數(shù)據(jù)源放在DataTable里面,但是偶爾也會(huì)需要把不要的行移除,怎么實(shí)現(xiàn)呢,下面通過代碼給大家介紹c# atatable 刪除行的方法,需要的朋友一起看下吧2016-05-05c# 數(shù)據(jù)庫(kù)的 sql 參數(shù)封裝類的編寫
c# 數(shù)據(jù)庫(kù)的 sql 參數(shù)封裝類的編寫...2007-12-12