C# 由于响应而未处理ItemCommand。是否在回发中重定向?
我有一个关于我的网站没有运行由我的中继器运行的ItemCommand后面的代码的问题 以下是我的C代码中的一些片段:C# 由于响应而未处理ItemCommand。是否在回发中重定向?,c#,asp.net,postback,response.redirect,itemcommand,C#,Asp.net,Postback,Response.redirect,Itemcommand,我有一个关于我的网站没有运行由我的中继器运行的ItemCommand后面的代码的问题 以下是我的C代码中的一些片段: protected void Page_Load() { if (!Page.IsPostBack) { ddlGender.Items.Insert(0, new ListItem("-", "%")); ddlMerk.Items.Insert(0, new ListItem("-", "
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";
}
}
值得注意的是,我已经将我的三个DropDownLists设置为AutoPostBack,因此它们会触发IsPostBack事件,该事件将填充查询字符串
现在我注意到,当我注释掉“if Page.IsPostBack”部分时,事件触发得很好。所以我认为Response.Redirect阻止了事件的触发,对吗?
我想找到一种方法来触发事件,并用响应进行回发。重定向也会发生,但到目前为止,我还没有找到一种方法
我真诚地希望你们能帮助我,我将不胜感激
谢谢。如果您希望页面仅在ItemCommand事件期间重定向,则可以在页面加载期间将其删除,并在ItemCommand事件内移动 当我把“Response.Redirect”行放在“if!”!我得到了同样的结果。如果你重定向,生命周期就会中断。调用新页面时,上一次回发的所有信息都将消失。谢谢你,ivowiblo,知道这一点很有用。我希望每次更改已启用自动回发的3个DropDownList之一的选定值时,页面都会重定向。这是因为我希望查询字符串中的DDL中的值,然后我再次将其用于SelectCommand。然后,当下拉列表值发生更改时,将调用方法,而不是在页面中加载移动到下拉列表选择索引更改,将这段代码发送到DropDownList的SelectedIndexChanged部分就成功了。我还需要移动一些其他的代码,但现在一切都像一个符咒。