关于我的网站没有运行我的Repeater运行的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";
}
}
值得注意的是,我已将三个DropDownLists设置为AutoPostBack,因此它们会触发填充QueryStrings的IsPostBack事件。
现在我注意到当我注释掉'if(Page.IsPostBack)'部分时,事件触发就好了。所以我认为Response.Redirect阻止事件发生,我是否正确? 我想找到一个触发事件的方法和带有Response.Redirect的PostBack,但我还没有找到方法。
我真诚地希望你们中的任何人都可以帮助我,我将不胜感激。
谢谢。
答案 0 :(得分:0)
如果您希望页面仅在ItemCommand事件期间“重定向”,则可以在Page_Load中删除它并移动到ItemCommand事件中。