Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何重新创建此动态控件_Asp.net - Fatal编程技术网

Asp.net 如何重新创建此动态控件

Asp.net 如何重新创建此动态控件,asp.net,Asp.net,尝试制作一个简单的应用程序,其中我有一个tems下拉列表,数字从1到4 根据用户选择的编号,我会使用绑定的checkedchanged事件动态创建此数量的复选框。因此,当用户选中某些复选框时,将引发checkedchanged事件,我将选中复选框的文本存储在会话中,然后当我单击按钮时,我只希望看到选中复选框中的文本 但在checkedchanged事件处理程序中,我似乎应该重新创建动态控制,但我还没有找到解决方案。先谢谢你 public partial class proba : System.

尝试制作一个简单的应用程序,其中我有一个tems下拉列表,数字从1到4

根据用户选择的编号,我会使用绑定的checkedchanged事件动态创建此数量的复选框。因此,当用户选中某些复选框时,将引发checkedchanged事件,我将选中复选框的文本存储在会话中,然后当我单击按钮时,我只希望看到选中复选框中的文本

但在checkedchanged事件处理程序中,我似乎应该重新创建动态控制,但我还没有找到解决方案。先谢谢你

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);


        }
    }