使用跳过逻辑在C#中创建动态控件 [英] create dynamic control in C# with skip logic
本文介绍了使用跳过逻辑在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屋!
查看全文