J'ai défini la propriété enableviewstate de linkbutton et label sur true.enregistre également les mêmes boutons à la publication dans le gestionnaire d'événements pageload.mais je ne peux pas appeler le gestionnaire d'événements onclick de linkbutton.can u dites-moi quel est le problème avec le code?Asp.net: pour appeler le gestionnaire d'événements des boutons générés dynamiquement?
public partial class _Default: System.Web.UI.Page { protected void Page_Load (expéditeur d'objet, EventArgs e) {
List<LinkButton> listOfLinkButton = Session["ListOfLinkButton"] as List<LinkButton>;
List<Label> listOfLabel = Session["ListOfLabel"] as List<Label>;
if(listOfLabel!=null && listOfLinkButton!=null)
{
for (int i = 0; i < listOfLinkButton.Count; i++)
{
PlaceHolder1.Controls.Add(listOfLinkButton[i]);
PlaceHolder1.Controls.Add(new LiteralControl("<br />"));
PlaceHolder1.Controls.Add(listOfLabel[i]);
PlaceHolder1.Controls.Add(new LiteralControl("<br />"));
}
}
}
protected void LinkButton_Click(object sender, EventArgs e)
{
LinkButton linkButton = sender as LinkButton;
Response.Redirect(linkButton.Attributes["LinkUrl"]);
}
protected void Button1_Click1(object sender, EventArgs e)
{
List<LinkButton> listOfLinkButton = new List<LinkButton>();
List<Label> listOfLabel = new List<Label>();
Rss rssDocumentObj = RssFileReader.GetRssDocumentData(TextBox1.Text);
for (int j = 0; j < rssDocumentObj.ListOfChannel.Count; j++)
{
LinkButton linkButton = new LinkButton();
linkButton.ID = "LinkButtonForChannelDynamicInPlaceHolder1Id" + j;
linkButton.EnableViewState = true;
linkButton.ForeColor = Color.Blue;
linkButton.Font.Bold = true;
linkButton.Font.Size = 18;
linkButton.Font.Underline = true;
linkButton.Text = rssDocumentObj.ListOfChannel[j].ChannelTitle.InnerText;
linkButton.Click += new EventHandler(LinkButton_Click);
linkButton.Attributes.Add("LinkUrl", rssDocumentObj.ListOfChannel[j].ChannelLink.InnerText);
linkButton.Attributes.Add("onmouseover", "this.style.color = '#006699'");
linkButton.Attributes.Add("onmouseout", "this.style.color = '#0000ff'");
PlaceHolder1.Controls.Add(linkButton);
listOfLinkButton.Add(linkButton);
PlaceHolder1.Controls.Add(new LiteralControl("<br />"));
Label label = new Label();
label.ID = "LabelForChannelDynamicInPlaceHolder1Id" + j;
label.EnableViewState = true;
label.ForeColor = Color.DarkSlateGray;
label.Text = rssDocumentObj.ListOfChannel[j].ChannelDescription.InnerText;
PlaceHolder1.Controls.Add(label);
listOfLabel.Add(label);
PlaceHolder1.Controls.Add(new LiteralControl("<br />"));
for (int i = 0; i < rssDocumentObj.ListOfChannel[j].ListOfItem.Count; i++)
{
LinkButton linkButtonForItem = new LinkButton();
linkButtonForItem.ID = "LinkButtonDynamicInPlaceHolder1Id" + j + " " + i;
linkButtonForItem.EnableViewState = true;
linkButtonForItem.ForeColor = Color.Blue;
linkButtonForItem.Font.Bold = true;
linkButtonForItem.Font.Size = 14;
linkButtonForItem.Font.Underline = false;
linkButtonForItem.Text = rssDocumentObj.ListOfChannel[j].ListOfItem[i].ItemTitle.InnerText;
linkButtonForItem.Click += new EventHandler(LinkButton_Click);
linkButtonForItem.Attributes.Add("LinkUrl", rssDocumentObj.ListOfChannel[j].ListOfItem[i].ItemLink.InnerText);
linkButtonForItem.Attributes.Add("onmouseover", "this.style.color = '#006699'");
linkButtonForItem.Attributes.Add("onmouseout", "this.style.color = '#0000ff'");
PlaceHolder1.Controls.Add(linkButtonForItem);
listOfLinkButton.Add(linkButtonForItem);
PlaceHolder1.Controls.Add(new LiteralControl("<br />"));
Label labelForItem = new Label();
labelForItem.ID = "LabelDynamicInPlaceHolder1Id" + i;
labelForItem.EnableViewState = true;
labelForItem.ForeColor = Color.DarkGray;
labelForItem.Text = rssDocumentObj.ListOfChannel[j].ListOfItem[i].ItemDescription.InnerText;
PlaceHolder1.Controls.Add(labelForItem);
listOfLabel.Add(labelForItem);
PlaceHolder1.Controls.Add(new LiteralControl("<br />"));
Session["ListOfLinkButton"] = listOfLinkButton;
Session["ListOfLabel"] = listOfLabel;
}
}
}
}
Si vous pensez à ce que cela signifierait pour sérialiser le gestionnaire d'événements, ce qui signifie que vous seriez en train de sérialiser un pointeur vers une fonction, il devient clair que ce ne serait probablement pas une fonctionnalité très utile, IMO. –