使用动态创建的按钮的事件来重定向到另一个页面
本文关键字:重定向 另一个 事件 动态 创建 按钮 | 更新日期: 2023-09-27 17:50:50
我试图调用动态创建的按钮发送参数的事件,但是当我点击什么都没有发生,只是Post Back页面。
public void adicionarComanda()
{
List<Comanda> lc = ControllerComanda.getComanda();
foreach (Comanda comanda in lc)
{
Button bt = new Button();
bt.Text = comanda.nome_Pessoa;
bt.CssClass = "botoes";
bt.Click += btnNome1_Click;
bt.CommandArgument = comanda.nome_Pessoa;
HtmlGenericControl li = new HtmlGenericControl("li");
li.Controls.Add(bt);
ulBotoes.Controls.Add(li);
}
}
和事件
protected void btnNome1_Click(object sender, EventArgs e)
{
string nomePessoa = (sender as Button).CommandArgument;
Session["currentUser"] = nomePessoa.ToString();
Response.Redirect("~/Mobile/Pages/produtosCategoria.aspx");
}
但是当我点击按钮时什么也没有发生,只是PostBack页面。我该如何解决这个问题?
谢谢大家
您需要在每次回发时重新呈现所有动态生成的控件。我建议创建一个方法来生成这些控件,然后在Page_Load
中的每次回发时调用该方法。
您是否考虑过将"currentuser"作为参数传递?bt.Attributes。添加("onclick"、"javascript:重定向(~/移动/页面/produtosCategoria.aspx ?的名字= comanda.nome_Pessoa ')";
您可以使用另一种方法- PostBackUrl。
public void adicionarComanda()
{
List<Comanda> lc = ControllerComanda.getComanda();
foreach (Comanda comanda in lc)
{
Button bt = new Button();
bt.Text = comanda.nome_Pessoa;
bt.CssClass = "botoes";
bt.PostBackUrl = String.Format("~/Mobile/Pages/produtosCategoria.aspx?user={0}", comanda.nome_Pessoa);
HtmlGenericControl li = new HtmlGenericControl("li");
li.Controls.Add(bt);
ulBotoes.Controls.Add(li);
}
}
然后在重定向页面中,您可以使用Request.QueryString["user"],并根据需要使用