0

我的网站没有运行我的中继器运行的 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 也发生,但我还没有找到方法。

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

谢谢你。

4

1 回答 1

0

如果您希望您的页面仅在 ItemCommand 事件期间“重定向”,那么您可以在 Page_Load 期间将其移除并在 ItemCommand 事件内移动。

于 2012-06-18T20:10:18.003 回答