zoukankan      html  css  js  c++  java
  • 动态添加控件并获取其值

    google

    注意:
    1.aspx页面<%Page%>里必须添加EnableViewState="true",
    使动态添加的控件状态可保存
    2.动态添加的控件最好放在容器上(这里用Panel这个容器)
    3.必须设置动态控件的ID,否则获取不到该控件

    建议:运用Asp.net Ajax会有更好的用户体验效果
    例子:
    test2.aspx:
    <%@ Page Language="C#"  AutoEventWireup="true" CodeFile="Test2.aspx.cs"
    Inherits
    ="Test2" Title="Untitled Page" EnableViewState="true" %>
       
    <asp:Panel ID="Panel2" runat="server" Height="50px" Width="446px">
          
    <asp:Label ID="Label1" runat="server" Text="Name1:"></asp:Label>
          
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
          
    <asp:Label ID="Label2" runat="server" Text="Address1:"></asp:Label>
          
    <asp:TextBox ID="TextBox2" runat="server" Width="149px"></asp:TextBox><br />
       
    </asp:Panel>
       
    <asp:Button ID="btnAddAjax" runat="server" Text="Add" OnClick="btnAddAjax_Click" /> 
    <asp:Button id="btnShow" onclick="btnShow_Click" runat="server" Text="Show" />
    <asp:Label id="lblMsg" runat="server">No Value</asp:Label>



    test2.aspx.cs

    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;

    public partial class Test2 : System.Web.UI.Page
    {
       
    protected void Page_Load(object sender, EventArgs e)
       
    {
        
          
    if(ViewState["txtName2"!= null && (bool)ViewState["txtName2"])
          
    {
             CreateMyControls();
          }

          
         
       }


       
    protected void btnAddAjax_Click(object sender, EventArgs e)
       
    {
          CreateMyControls();
       }

       
    protected void btnShow_Click(object sender, EventArgs e)
       
    {
          
    if(ViewState["txtName2"]!=null)
          
    {
             TextBox txtName2 
    = Panel2.FindControl("txtName2"as TextBox;
             
    if(txtName2 != null)
             lblMsg.Text 
    = "Name2= " + txtName2.Text;
          }


          
    if(ViewState["txtAddr2"]!=null)
          
    {
             TextBox txtAddr2 
    = Panel2.FindControl("txtAddr2"as TextBox;
             
    if(txtAddr2 != null)
                lblMsg.Text 
    += " Addr2= " + txtAddr2.Text;
          }


         
       }


       
    private void CreateMyControls()
       
    {
          Label lblName2 
    = new Label();
          lblName2.Text 
    = "Name2:";

          TextBox txtName2 
    = new TextBox();
          
    //设置ID,否则不能获取到值
          txtName2.ID = "txtName2";
          
    //可视状态,否则PostBack后动态添加的控件会不见
          ViewState["txtName2"]= true;

          Label lblAddr2 
    = new Label();
          lblAddr2.Text 
    = "Addr2:";
  • 相关阅读:
    vSphere vCenter的个人理解及问题
    服务器账号过期处理
    虚拟化初探引入
    win10虚拟机跨网段迁移
    win7远程执行win10的抓取代码
    Jenkins+Sonar质量门禁【实践篇pipeline版】
    ELK7.10 license过期处理
    php 0108
    php 0110
    php 0111
  • 原文地址:https://www.cnblogs.com/sinkzephyr/p/862626.html
Copyright © 2011-2022 走看看