单击后动态创建的按钮消失

时间:2018-11-12 19:59:50

标签: c# asp.net

我正在开发一个asp.net应用程序(框架4.7)。我试图根据数据库中的值动态创建按钮。我正在使用母版页。在内容占位符内部,我编写了以下代码:

        <asp:Panel ID="Panel1" runat="server">
        </asp:Panel> 

在后面的代码中,我将在另一个按钮的click事件上动态创建按钮:

protected void btnGo_Click(object sender, EventArgs e)
    {
        List<SqlParameter> dbParameters = new List<SqlParameter>();
        dbParameters.Add(new SqlParameter("@UserId", Convert.ToInt64(ddlProfile.SelectedValue)));
        dbParameters.Add(new SqlParameter("@ProfileId", Convert.ToInt64(ddlProfile.SelectedValue)));
        dbParameters.Add(new SqlParameter("@ClientId", "AP001C01"));
        DataTable dt = DBManager.GetDataTable("espGetServiceUserWise", dbParameters, conn);

        foreach (DataRow row in dt.Rows)
        {
            if (row["Value"].ToString() == "Accounts")
            {
                Button btn = new Button();
                btn.ID = "btnAccounts";
                btn.Text = "Accounts";
                btn.Click += new EventHandler(btnAccounts_Click);
                Panel1.Controls.Add(btn);
            }
            else if(row["Value"].ToString() == "Income Tax")
            {
                Button btn = new Button();
                btn.ID = "btnIT";
                btn.Text = "Income Tax";
                btn.Click += new EventHandler(btnIT_Click);
                Panel1.Controls.Add(btn);
            }
        }
    }

此代码动态创建按钮。我已经针对动态创建的按钮的click事件编写了以下代码:

protected void btnAccounts_Click(object sender, EventArgs e)
    {
        ClientScript.RegisterStartupScript(this.GetType(), "Accounts", "alert('Accounts!');", true);
    }

    protected void btnIT_Click(object sender, EventArgs e)
    {
        ClientScript.RegisterStartupScript(this.GetType(), "IT", "alert('IT');", true);
    }

但是问题是,当我单击动态创建的按钮时,所有按钮都消失了。

可能正在发回邮件。我该如何解决该问题?谢谢

Partha

0 个答案:

没有答案