九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
使用Asp.net動(dòng)態(tài)生成控件的使用總結(jié)! - 秋風(fēng)夜狼 - sweet_chenqian...
使用Asp.net動(dòng)態(tài)生成控件的使用總結(jié)! [原創(chuàng) 2006-12-11 14:59:11]
 
 

  這幾天有個(gè)需求是要求動(dòng)態(tài)生成控件。由于對(duì)Asp.net不熟,開始時(shí)把我弄暈了,始終是第一次加載的控件,PostBack后就不存在了。

  原來,在頁面刷新,上次動(dòng)態(tài)生成的控件就沒了,郁悶ing.......,要想動(dòng)態(tài)的控件在每次PostBack后都能夠顯示在頁面上,則每次PostBack都需要重新加載。每次加載就能夠顯示,Easy!?。?/p>

  但是新問題又來了,如果取值呢?FindControl可以找到控件,但是頁面刷后不是又重新生成了控件嗎,原來控件上的值還有嗎,我想肯定沒有了吧(我想的),那怎么取值,我又郁悶了!事實(shí)說明我所想的是錯(cuò)的,PostBack后,重新生成的控件,不但能夠使控件重新顯示出來,并且值仍然能夠取到,當(dāng)然前提是PostBack后生成的控件的ID和上次生成的要一致。至于為什么,原理方面的東西沒搞太明白,正在研究,希望有高手朋友路過時(shí),隨便指點(diǎn)一下。

  一個(gè)小例子:

HTML頁面代碼:

<form id="Form1" method="post" runat="server">
   <asp:Button id="Button1" style="Z-INDEX: 101; LEFT: 64px; POSITION: absolute; TOP: 184px" runat="server"
    Text="增加一個(gè)TextBox"></asp:Button>
   <asp:Button id="Button2" style="Z-INDEX: 102; LEFT: 248px; POSITION: absolute; TOP: 184px" runat="server"
    Text="提取第一個(gè)TextBox的值 ==>" Width="200px"></asp:Button>
   <asp:TextBox id="txt" style="Z-INDEX: 103; LEFT: 472px; POSITION: absolute; TOP: 184px" runat="server"
    ReadOnly="True"></asp:TextBox>
  </form>

CS代碼:

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace UserRemindWindow.WebUI
{
 /// <summary>
 /// 動(dòng)態(tài)添加控件_一_ 的摘要說明。
 /// </summary>
 public class 動(dòng)態(tài)添加控件_一_ : System.Web.UI.Page
 {
  protected System.Web.UI.WebControls.Button Button1;
  protected System.Web.UI.WebControls.Button Button2;
  protected System.Web.UI.WebControls.TextBox txt;
  private ArrayList TextBoxsList
  {
   get
   {
    if(ViewState["myTextBoxsList"]==null)
     return new ArrayList();
    else
     return (ArrayList)ViewState["myTextBoxsList"];
   }
   set
   {
    ViewState["myTextBoxsList"] = value;
   }
  }

  private void Page_Load(object sender, System.EventArgs e)
  {
   // 在此處放置用戶代碼以初始化頁面
   if(Page.IsPostBack)
   {
    for(int i=0;i<this.TextBoxsList.Count;i++)
    {
     string txtID = this.TextBoxsList[i].ToString();
     TextBox tmp = new TextBox();
     tmp.ID = txtID;
     Page.Controls[1].Controls.Add(tmp);
     tmp.Text = Request.Form[txtID].ToString();
    }
   }

  }

//  private TextBox[][] MyTextBoxs = new TextBox[][]{new TextBox[]{},new TextBox[]{},new TextBox[]{}};
  private void Button1_Click(object sender, System.EventArgs e)
  {
   TextBox tmp = new TextBox();
   tmp.ID = "TextBox" + this.TextBoxsList.Count.ToString();
   Page.Controls[1].Controls.Add(tmp);

   ArrayList array = this.TextBoxsList;
   array.Add(tmp.ID);
   this.TextBoxsList = array;
  }

  private void Button2_Click(object sender, System.EventArgs e)
  {
   this.txt.Text = ((TextBox)Page.FindControl("TextBox0")).Text;
  }


  #region Web 窗體設(shè)計(jì)器生成的代碼
  override protected void OnInit(EventArgs e)
  {
   //
   // CODEGEN: 該調(diào)用是 ASP.NET Web 窗體設(shè)計(jì)器所必需的。
   //
   InitializeComponent();
   base.OnInit(e);
  }
  
  /// <summary>
  /// 設(shè)計(jì)器支持所需的方法 - 不要使用代碼編輯器修改
  /// 此方法的內(nèi)容。
  /// </summary>
  private void InitializeComponent()
  {   
   this.Button1.Click += new System.EventHandler(this.Button1_Click);
   this.Button2.Click += new System.EventHandler(this.Button2_Click);
   this.Load += new System.EventHandler(this.Page_Load);

  }
  #endregion

  
 }
}

這個(gè)代碼是CSDN論壇的朋友提供的,我自己的太長,就用這個(gè)了。作用是動(dòng)態(tài)生成TextBox,并且用

tmp.Text = Request.Form[txtID].ToString(); 提取它的值。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
ASP.NET:目錄的遍歷
asp.net中為TextBox Web服務(wù)器控件添加OnClick事件
FormView控件
asp.net生成靜態(tài)頁的兩種方法
ASP.NET 中直接使用C# 動(dòng)態(tài)修改CSS樣式
說不清 ASP.NET頁面生命周期描述 (轉(zhuǎn))
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服