由于PostBack中的Response.Redirect,ItemCommand没有被处理?

时间:2012-06-18 19:56:25

标签: c# asp.net postback response.redirect itemcommand

关于我的网站没有运行我的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,但我还没有找到方法。

我真诚地希望你们中的任何人都可以帮助我,我将不胜感激。

谢谢。

1 个答案:

答案 0 :(得分:0)

如果您希望页面仅在ItemCommand事件期间“重定向”,则可以在Page_Load中删除它并移动到ItemCommand事件中。