我有两个图像按钮,分配了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;
}
答案 0 :(得分:2)
你问的是非法的。有一个在ASP.NET中执行事情的顺序
正如您所看到的“回发事件处理”在“加载”之后发生并试图欺骗它,之后会让您感到头痛。这是一个非常糟糕的做法,这来自那些一直走在那条路上的人。你不想搞乱页面生命周期。
查看您的代码,我建议您将// Run this code
行中的任何内容放入方法中,然后从Click处理程序调用该方法,而不是从else
块调用。
无论如何,你应该始终牢记页面生命周期,并根据它修改你的代码逻辑。