我遇到了一个问题,我的网站没有运行我的中继器运行的ItemCommand背后的代码。
下面是我的 C# 代码中的一些片段:
protected void Page_Load()
{
if (!Page.IsPostBack)
{
ddlGender.Items.Insert(0, new ListItem("-", "%"));
ddlMerk.Items.Insert(0, new ListItem("-", "%"));
ddlType.Items.Insert(0, new ListItem("-", "%"));
}
if (Page.IsPostBack)
{
Response.Redirect(String.Format("Catalogus.aspx?gender={0}&merkid={1}&type={2}", ddlGender.SelectedValue, ddlMerk.SelectedValue, ddlType.SelectedValue));
}
}
protected void rCatalogus_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "voegToe")
{
HttpCookie winkelmandje = new HttpCookie("Winkelmandje");
string product = (string)e.CommandArgument;
winkelmandje[product] = "Test";
winkelmandje.Expires = DateTime.Now.AddDays(2);
Response.Cookies.Add(winkelmandje);
Label1.Text = "HALSKFDHSALKFDJAS";
}
}
值得注意的是,我已经将我的三个 DropDownList 设置为 AutoPostBack,因此它们触发了填充 QueryString 的 IsPostBack 事件。
现在我注意到,当我注释掉"if(Page.IsPostBack)"部分时,事件触发得很好。所以我认为响应重定向正在阻止事件触发,我说得对吗?我想找到一种方法来触发事件,并且也发生带有响应的回发,但是到目前为止,我还没有找到方法。
我真诚地希望你们中的任何人能帮助我,我将不胜感激。
谢谢。
"重定向",则可以在Page_Load期间将其删除并在 ItemCommand 事件内移动。