zoukankan      html  css  js  c++  java
  • ASP.NET动态添加控件一例

    第一次单击页面中有3个Label,第二次单击有6个,第三次单击有9个,也就是每次单击要在上次的状态下再添加3个。 
    我的方法是,可以通过Session来保存上次的状态,一种解法如下: 
    Test.aspx关键代码: 

    <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="最后一个Button" /> 
    </form> 

    Test.aspx.cs关键代码: 

    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; 

    当页面回发时,先记下Panel1在控件树中的位置,并移除它,然后从Session变量获取上次添加后的Panel1,并添加到控件树中原来的位置,在这基础上继续添加新的Label控件。最后的那个Button是为了测试之用,作用有二:一是帮助查看添加的位置是否正确,二是用于检测空回发时是否能维持上次的状态。

  • 相关阅读:
    只允许更改任务状态,其他项不允许更改
    已有发料的工单不能变更为取消状态
    不允许车间任务新建
    完工原因栏必输
    不允许计划员修改任务的完成、完工不计费状态
    虚拟件零成本控制
    成本监控只能修改完成或完工不计费状态作业
    完工子库必输
    发料不允许更改发料日期
    车间任务不可更改开始时间/完成时间
  • 原文地址:https://www.cnblogs.com/sjqq/p/6425238.html
Copyright © 2011-2022 走看看