我点击NextPage.aspx
中的按钮,然后将PostBackUrl
重定向到StartUpPage.aspx
。
按钮名称以“ctl
”开头。如何在StartUpPage.aspx
的页面加载中获取按钮名称?我知道在Request.Form["ctl..."]
中是按钮的值。但是我如何找出哪一个是被点击的?
以下是我在NextPage.aspx
中创建按钮的代码:
int i = 0;
foreach (ListItem li in ListItems)
{
Button b = new Button();
b.Text = li.Text;
b.PostBackUrl = "StartUpPage.aspx";
b.ID = "ctl" + i;
PlaceHolderButtons.Controls.Add(b);
i++;
}
答案 0 :(得分:1)
你应该在“NextPage.aspx”中声明一个公共的可用性。然后每次创建按钮时,只需将按钮id设置为此变量。然后在“StartUpPage.aspx”页面中,只需在pageload上调用公共变量。像这样:
public string btnID="";
protected void Page_Load(object sender, EventArgs e)
{
int i = 0;
foreach (ListItem li in ListItems)
{
Button b = new Button();
b.Text = li.Text;
b.PostBackUrl = "StartUpPage.aspx";
b.ID = "ctl" + i;
btnID = b.ID;
PlaceHolderButtons.Controls.Add(b);
i++;
}
}
在StartUpPage.aspx中 protected void Page_Load(object sender, EventArgs e)
{
NextPage ob = new NextPage();
string ID= ob.btnID
}
现在,您将在ID变量
中获得按下的按钮ID答案 1 :(得分:0)
我建议你使用查询字符串。当您指定按钮控件的postbackurl时,也会发送按钮ID。在您的StartUpPage中,您可以通过从查询字符串中获取控件ID来找到上一页的控件。 这是例子:
NextPage.aspx:
int i = 0;
foreach (ListItem li in ListItems)
{
Button b = new Button();
b.Text = li.Text;
b.ID = "ctl" + i;
b.PostBackUrl = "StartUpPage.aspx?id=" + b.ID;
PlaceHolderButtons.Controls.Add(b);
i++;
}
StartUpPage:
if (PreviousPage != null)
{
Button btn = (Button)PreviousPage.FindControl(Request.QueryString["id"]);
Response.Write(btn.Text);
}