图像按钮和回发问题

时间:2011-12-26 00:14:40

标签: c# postback imagebutton autopostback

我有两个图像按钮,分配了Click事件。每个活动都有代码。单击它们时,它会在单击事件中运行代码之前运行页面加载功能。如何让它首先在点击事件中运行代码?

节日快乐!

图片按钮。

  protected void Page_Load(object sender, EventArgs e)
    {
        //YesID = "1";
        if (!IsPostBack)
        {

            Session["FirstyesID"] = 0;
            Session["FirstnoID"] = 0;
            Session["SecondnoId"] = 0;
            Session["SecondyesId"] = 0;
            Session["yesID"] = 0;
            Session["noId"] = 0;
        }
        else
        {
            //Run this code
        }
 }
         protected void FirstPicLink_Click(object sender, ImageClickEventArgs e)
    {
        Session["yesID"] = Session["FirstyesID"];
        Session["noId"] = Session["FirstnoID"];
        //FirstPicLink.PostBackUrl = "default.aspx";
        //FirstPicLink.PostBackUrl = "GadgetFS.aspx?yesId=" + firstYesPicId + "&noId=" + firstNoPicId;

    }

    protected void SecondPicLink_Click(object sender, ImageClickEventArgs e)
    {
        Session["yesID"] = Session["SecondyesId"];
        Session["noId"] = Session["SecondnoId"];
        //SecondPicLink.PostBackUrl = "default.aspx";
        //SecondPicLink.PostBackUrl = "GadgetFS.aspx?yesId=" + secondYesPicId + "&noId=" + secondNoPicId;
    }

1 个答案:

答案 0 :(得分:2)

你问的是非法的。有一个在ASP.NET中执行事情的顺序

正如您所看到的“回发事件处理”在“加载”之后发生并试图欺骗它,之后会让您感到头痛。这是一个非常糟糕的做法,这来自那些一直走在那条路上的人。你不想搞乱页面生命周期。

查看您的代码,我建议您将// Run this code行中的任何内容放入方法中,然后从Click处理程序调用该方法,而不是从else块调用。 无论如何,你应该始终牢记页面生命周期,并根据它修改你的代码逻辑。