我想要完成的是使用 onClick 命令设置动态创建的链接按钮,以便在单击时它将运行后面代码中的方法。这是我的代码:
protected void Page_Init(object sender, EventArgs e)
{
LoadLeftSide();
}
private void LoadLeftSide()
{
string filepath = Server.MapPath("DataSource.xml");
List<Post> list = PostHelper.GetAllPosts(filepath);
HtmlTable table = FindControl("tbl") as HtmlTable;
HtmlTableRow hearderrow = new HtmlTableRow();
HtmlTableCell heardercell = new HtmlTableCell();
heardercell.InnerText = "Posts:";
hearderrow.Cells.Add(heardercell);
table.Rows.Add(hearderrow);
foreach (Post p in list)
{
HtmlTableRow row = new HtmlTableRow();
HtmlTableCell cell1 = new HtmlTableCell();
LinkButton lnkPost = new LinkButton();
lnkPost.ID =string.Format("{0}" ,Guid.NewGuid());
lnkPost.Attributes.Add("runat", "server");
lnkPost.Text = p.Title;
// lnkPost.CommandName = p.Id.ToString();
// lnkPost.CommandArgument = p.Id.ToString();
//lnkPost.Command += new CommandEventHandler(this.onLinkClick);
lnkPost.Click += new EventHandler(this.onLinkClick);
cell1.Controls.Add(lnkPost);
row.Cells.Add(cell1);
table.Rows.Add(row);
}
table.DataBind();
}
protected void onLinkClick(object sender, EventArgs e)
{
string filepath = Server.MapPath("DataSource.xml");
int id = 1;
Post post=PostHelper.GetPostById(id, filepath);
lblDescription.Text = post.Description;
}
创建所有动态链接页面预初始化处理程序并在每个页面回发上重新创建相同的层次结构。然后ASP.NET将能够处理OnClick动态链接事件。
而你不需要这个
lnkPost.Attributes.Add("runat", "server");
也许 ASP.NET 菜单控件会更合适?它支持 XML 与 XPath 的绑定
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)