Asp.net 如何重新创建此动态控件
尝试制作一个简单的应用程序,其中我有一个tems下拉列表,数字从1到4 根据用户选择的编号,我会使用绑定的checkedchanged事件动态创建此数量的复选框。因此,当用户选中某些复选框时,将引发checkedchanged事件,我将选中复选框的文本存储在会话中,然后当我单击按钮时,我只希望看到选中复选框中的文本 但在checkedchanged事件处理程序中,我似乎应该重新创建动态控制,但我还没有找到解决方案。先谢谢你Asp.net 如何重新创建此动态控件,asp.net,Asp.net,尝试制作一个简单的应用程序,其中我有一个tems下拉列表,数字从1到4 根据用户选择的编号,我会使用绑定的checkedchanged事件动态创建此数量的复选框。因此,当用户选中某些复选框时,将引发checkedchanged事件,我将选中复选框的文本存储在会话中,然后当我单击按钮时,我只希望看到选中复选框中的文本 但在checkedchanged事件处理程序中,我似乎应该重新创建动态控制,但我还没有找到解决方案。先谢谢你 public partial class proba : System.
public partial class proba : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
dd1.Items.Add("1");
dd1.Items.Add("2");
dd1.Items.Add("3");
dd1.Items.Add("4");
}
protected void dd1_SelectedIndexChanged1(object sender, EventArgs e)
{
int numTourists = Convert.ToInt32(dd1.SelectedItem.Text);
for (int i = 0; i < numTourists; i++)
{
CheckBox chk = new CheckBox();
chk.ID = "chk" + i;
chk.Text = "box" + i;
chk.AutoPostBack = true;
chk.CheckedChanged += new EventHandler(checkChanged);
Page.FindControl("form1").Controls.Add(chk);
}
}
protected void checkChanged(object sender, EventArgs e)
{
// here I should recteate the control
CheckBox chk = (CheckBox)sender;
lblpr.Text += chk.Text;
Srolession["chk"] = chk.Text;
}
公共部分类proba:System.Web.UI.Page
{
受保护的无效页面加载(对象发送方、事件参数e)
{
dd1.项目。添加(“1”);
dd1.项目。添加(“2”);
dd1.项目。添加(“3”);
dd1.项目。添加(“4”);
}
受保护的void dd1\u SelectedIndexChanged1(对象发送方,事件参数e)
{
int numTourists=Convert.ToInt32(dd1.SelectedItem.Text);
for(int i=0;i
static bool chkddlchange=false;//定义此项….以检查是否已更改。
受保护的无效页面加载(对象发送方、事件参数e)
{
dd1.项目。添加(“1”);
dd1.项目。添加(“2”);
dd1.项目。添加(“3”);
dd1.项目。添加(“4”);
如果(Page.IsPostBack&&chkddl==true)
{
int numTourists=Convert.ToInt32(dd1.SelectedItem.Text);
chkddl=true;//设置为true,这样您就可以知道您的索引已更改。。
for(int i=0;i
不,你必须在页面加载事件时创建,你能发布一些简单的代码吗?我发布了一个答案…请参阅
static bool chkddlchange=false; //define this....to check you Drop Changed Or Not.
protected void Page_Load(object sender, EventArgs e)
{
dd1.Items.Add("1");
dd1.Items.Add("2");
dd1.Items.Add("3");
dd1.Items.Add("4");
if(Page.IsPostBack && chkddl==true)
{
int numTourists = Convert.ToInt32(dd1.SelectedItem.Text);
chkddl=true;//make true so you can know that you ddlindex is changed..
for (int i = 0; i < numTourists; i++)
{
CheckBox chk = new CheckBox();
chk.ID = "chk" + i;
chk.Text = "box" + i;
chk.AutoPostBack = true;
chk.CheckedChanged += new EventHandler(checkChanged);
Page.FindControl("form1").Controls.Add(chk);
}
}
}
protected void dd1_SelectedIndexChanged1(object sender, EventArgs e)
{
int numTourists = Convert.ToInt32(dd1.SelectedItem.Text);
chkddl=true;//make true so you can know that you ddlindex is changed..you have to
checkboxex on page load
for (int i = 0; i < numTourists; i++)
{
CheckBox chk = new CheckBox();
chk.ID = "chk" + i;
chk.Text = "box" + i;
chk.AutoPostBack = true;
chk.CheckedChanged += new EventHandler(checkChanged);
Page.FindControl("form1").Controls.Add(chk);
}
}