相关疑难解决方法(0)

ASP.NET动态创建控件和回发

我知道这个问题已经被问了好几千次了,之前我一直在努力,但由于某种原因,我无法完成我想要完成的任务......我有一个动态添加的LinkBut​​ton,点击时会动态添加控件(在此示例中为文本框)指向同一面板.目的是在点击LinkBut​​ton时连续添加任意数量的控件(即我单击一次,一个框,然后另一次单击将给我2个框,另一个单击添加第三个).在下面的代码中,我使用序列化的当前日期和时间为每个文本框控件创建唯一的ID.

当我执行代码时,单击"添加过滤器"将生成一个新的文本框,但一旦再次单击将创建一个新文本框,并处理它之前的文本框.相反,我想要保留以前的文本框以及在其中提交的任何数据.

非常感谢您的帮助.

在aspx中:

<asp:Panel ID="pnlFilter" runat="server">

</asp:Panel>
Run Code Online (Sandbox Code Playgroud)

在aspx.cs中:

protected void Page_Init(object sender, EventArgs e)
{
        LinkButton lb = new LinkButton();
        lb.ID = "lbAddFilter";
        pnlFilter.Controls.Add(lb);
        lb.Text = "Add Filter";
        lb.Click += new EventHandler(lbAddFilter_Click);
}


void lbAddFilter_Click(object sender, EventArgs e)
{
    TextBox tb = new TextBox();
    tb.ID = "tb" + DateTime.Now.ToBinary().ToString();
    pnlFilter.Controls.Add(tb);
}
Run Code Online (Sandbox Code Playgroud)

asp.net postback dynamic-data

15
推荐指数
2
解决办法
6万
查看次数

动态添加的DropDownlists不会触发SelectedIndexChanged事件

我看到很多关于这个主题的事情,但我无法找到解决方案.我添加了许多下拉列表与一个事件,但他们没有触发SelectedIndexChanged evet.这是drplist创建者代码:

foreach (var row in cmdSelectCats.ExecuteReader())
{
    var id = row["ProductCategoryID"].ToString();

    var dropDownStatus = new DropDownList {ID = "DrpStatus-" + id};

    dropDownStatus.Items.Add(new ListItem("Aktif", "1"));
    dropDownStatus.Items.Add(new ListItem("Pasif", "2"));

    dropDownStatus.AutoPostBack = true; 
    dropDownStatus.SelectedIndexChanged += Status_SelectedIndexChanged;

    var tableCell = new TableCell();
    tableCell.Controls.Add(dropDownStatus);
    dropDownStatus.SelectedValue = row["ProductCategoryStatusID"].ToString();
    tableRow.Cells.Add(tableCell);
    TblCatList.Rows.Add(tableRow);
}
Run Code Online (Sandbox Code Playgroud)

当然是我的活动:

public void Status_SelectedIndexChanged(object sender, EventArgs e)
{
    //DO SOMETHING
} 
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

c# asp.net

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

asp.net ×2

c# ×1

dynamic-data ×1

postback ×1