![](/img/trans.png)
[英]Can we call Page_Load event in static web method using C# and ASP.NET
[英]ASP.NET/C# trying to use page_load method on a form with #A on end of web address through link
我需要使用相同的表单来显示多个内容,并且我意识到,当我添加如下链接时:
<a href="#A">A</a>
它具有相同的表单和网址,但地址末尾带有#A。我认为我可以使用它在同一表单上显示多个内容。 我的想法是在page_load方法中包含C#代码以检测Web地址是什么,并对URL字符串使用conatins方法并检测是否存在#A来更改表单的内容。 这是一个例子:
C#代码:
protected void Page_Load(object sender, EventArgs e)
{
string url = HttpContext.Current.Request.Url.AbsoluteUri;
if(url.Contains("#A"))
{
div1.Visible = false; //content 1
div2.visible = true; //content 2
}
}
asp.net代码:
<a href="#A">A</a>
<div ID="div1" runat="server">
content 1
</div>
<div ID="div2" runat="server">
content 2
</div>
我试图将Page_Load方法放入脚本标签中,但仍然无法正常工作。 我猜因为URL不同,CS代码无效吗? 我知道在单击链接之前,它会通过page_load方法一次。 另外,我确实使用了一种方法,可以给我div1和div2的控件,所以这不是问题。 我预先感谢大家的帮助! 另外,如果我的方法不能胜任工作,请告诉我任何可能的方法来实现我的目标。
编辑:我不能使用按钮来替换链接...也许是asp:hyperlink?
那是您正在使用的HTML超链接,不会引起回发,因此单击page_load将永远不会被调用。
我建议您是否要显示使用客户端JavaScript的hide div。 或者,您可以(例如)使用asp.net按钮控件,这将导致回发。
我建议anchor with an href
方法废弃anchor with an href
实现这一点:
使用ASP.NET服务器控件及其单击事件处理程序来管理页面上控件的可见性。
在您的Page_Load
,使页面具有显示控件的初始状态,如下所示:
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
div1.Visible = false; //content 1
div2.visible = true; //content 2
}
}
现在,您可以使用ASP.NET Button
或LinkButton
代替锚标记,从而将其回发到服务器,如下所示:
<asp:Button id="Button1"
Text="Click here to change page to B"
OnClick="Button1_Click"
runat="server"/>
现在,您有了事件处理程序代码,它将更改控件的可见性,如下所示:
protected void Button1_Click(Object sender, EventArgs e)
{
div1.Visible = true; //content 1
div2.visible = false; //content 2
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.