我有一个动态数据,必须在.cs文件的UI上填充。 目前我这样做:
File.aspx
<div id="divLinks" class="w3-content w3-display-container" style="max-width:100%;" runat="server">
</div>
File.aspx.cs
StringBuilder str = new StringBuilder();
str.Append("<a target=\"_blank\"><img class=\"mySlides\" src=\"" + imageLink + "\" style=\"width:100%; height:350px;\" runat=\"server\" onServerClick=\"MyFuncion_Click("+link+")\" ></a>");
divLinks.InnerHtml = str.ToString();
protected void LinkButton_Click(object sender, EventArgs e)
{
//Do something when clicked a link with parameter from that link as identifier
}
执行此操作后,我无法从onServerClick访问LinkButton_Click函数。
有人可以帮我解决这个问题,我想要一个具有独特价值的链接传递给函数进行进一步处理。
答案 0 :(得分:1)
您正尝试将aspnet控件作为字符串添加到页面中。那不行。您需要在页面中添加“真实”控件。
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack == false)
{
//do not add dynamic controls here
}
//create a new ImageButton instance on every page load
ImageButton ib = new ImageButton();
//set some properties
ib.CssClass = "mySlides";
ib.ImageUrl = "~/myImage.png";
//add the click method
ib.Click += LinkButton_Click;
//add the button to an existing control
PlaceHolder1.Controls.Add(ib);
}
请注意,您需要在每个页面加载上添加动态控件,其中包括PostBack。