使用跳过逻辑在C#中创建动态控件 [英] create dynamic control in C# with skip logic

查看:63
本文介绍了使用跳过逻辑在C#中创建动态控件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好我想知道如何在C#中使用跳过逻辑创建动态控件。



场景是,如果我点击YES选项那么前面的控件应该来,如果我点击NO选项然后跳过问题到下一个问题。

hello everybody i want to know How to create dynamic control in C# with skip logic.

The Scenario is, If i click YES option then fore-more controls should come, If i click NO option then skip the question to next question.

推荐答案

这可能会给你一个想法:

This might give you an idea:
<html xmlns="http://www.w3.org/1999/xhtml">
<head  runat="server">

</head>
<body>
    <form id="form1" runat="server">
    
    <asp:Panel ID="Panel1" runat="server" EnableViewState="False" ViewStateMode="Disabled">
    </asp:Panel>
    
    <asp:button id="Button_AddControl" runat="server" text="Add Control"

        onclick="Button_AddControl_Click" />
    
    <asp:Button ID="Button_Save" runat="server" onclick="Button_Save_Click" 

        Text="Save" />
    </form>
</body>
</html>



代码落后:


Code behind:

public partial class WebForm1 : System.Web.UI.Page
{
    List<string> lstData
    {
        get
        {
            if (ViewState["lstData"] == null)
                ViewState["lstData"] = new List<string>();
            return (List<string>)ViewState["lstData"];
        }
        set
        {
            ViewState["lstData"] = value;
        }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack)
        {
            LoadControl();
        }
    }

    void LoadControl()
    {
        for (int i = Panel1.Controls.Count; i < lstData.Count; i++)
        {
            Panel p = new Panel();
            TextBox textBox = new TextBox();
            p.Controls.Add(textBox);
            Panel1.Controls.Add(p);
        }
    }

    void LoadData()
    {
        for (int i = 0; i < lstData.Count; i++)
        {
            ((TextBox)Panel1.Controls[i].Controls[0]).Text = lstData[i];
        }
    }

    void SaveData()
    {
        for (int i = 0; i < lstData.Count; i++)
        {
            lstData[i] = ((TextBox)Panel1.Controls[i].Controls[0]).Text;
        }
    }

    protected void Button_Save_Click(object sender, EventArgs e)
    {
        SaveData();
    }

    protected void Button_AddControl_Click(object sender, EventArgs e)
    {
        lstData.AddRange(new string[3]);
        LoadControl();
        LoadData();
    }
}


这篇关于使用跳过逻辑在C#中创建动态控件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆