好的,我这里有一个小问题。我已经积累了一个ASP.NET项目,该项目在一个页面上运行所有内容而没有回发功能。该站点的核心使用我们正在尝试处理的Silverlight应用程序。
我是ASP.net网络应用程序的新手。
基本上我正在尝试使用以下代码动态创建列表项。
void AddLinkButton(string id, string text) {
LinkButton link = new LinkButton();
link.ID = id;
link.Text = text;
link.Click += new EventHandler(link_Click);
HtmlGenericControl li = new HtmlGenericControl("li");
li.Controls.Add(link);
tabsNav.Controls.Add(link);
}
这一切都很好,花花公子。但是,单击链接时,它会再次运行page_load,然后运行click事件。如何阻止page_load重新加载所有内容并仅更新我希望刷新的内容?
如果这不可行,我就是这样做的。我愿意接受建议,以获得我正在寻找的功能。
答案 0 :(得分:2)
我们最常使用!IsPostBack if语句包装我们不想在页面加载中执行的内容。
即
private void Page_Load()
{
if (!IsPostBack)
{
//Do actual page load stuff
}
}
答案 1 :(得分:2)
Page_Load
是Postbacks&标准ASP.NET Page lifecycle
的一部分。回调,以及您遇到的行为。
为了不在Postback上创建按钮,要使用类似于
的代码protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack && !IsCallback)
AddLinkButton("abc", "abc");
}
这仅在用户首次请求页面时将LinkButton添加到页面控件,而不是随后。