在我的sharepoint Web部件應用程序中。我如下動態生成LinkButtons。這工作得很好onClick動態生成的LinkButton
foreach (var pName in productTypesNames[productType])
{
var subLi = new HtmlGenericControl("li");
var linkButton = new LinkButton{ Text = pName };
linkButton.Click += new EventHandler(linkButton_Click);
subLi.Controls.Add(linkButton);
ul.Controls.Add(subLi);
}
然而,當我點擊UI中的鏈接之一,我調試器從來沒有碰到被設置在
void linkButton_Click(object sender, EventArgs e)
{
}
更多的代碼,第一行的斷點
protected void StateClicked(object sender, CommandEventArgs e)
{
//Generate a dictionary of type Dictionary<string, List<string>>
//Display the dictionary
foreach (var productType in productTypesNames.Keys)
{
var li = new HtmlGenericControl("li");
nav.Controls.Add(li);
var ul = new HtmlGenericControl("ul");
var anchor = new HtmlGenericControl("a");
anchor.Attributes.Add("href", "#");
foreach (var pName in productTypesNames[productType])
{
var subLi = new HtmlGenericControl("li");
var linkButton = new LinkButton{ Text = pName };
linkButton.Click += new EventHandler(linkButton_Click);
subLi.Controls.Add(linkButton);
ul.Controls.Add(subLi);
}
anchor.InnerHtml = productType;
li.Controls.Add(anchor);
li.Controls.Add(ul);
}
}
其中stateClicked是通過點擊美國的圖像地圖來調用。
可能有很多原因,需要更多的代碼,最可能的原因可能是AutoEventWireup =「false」,或linkButtons上缺少runat =「Server」。 – CjCoax
我添加了以下代碼,但仍不喜歡它:-( – socialMatrix
linkButton.Attributes.Add(「runat」,「server」); linkButton.Attributes.Add(「AutoEventWireup」,「true」); linkButton。 Attributes.Add(「AutoPostBack」,「true」); linkButton.Click + = new EventHandler(linkButton_Click); – socialMatrix