asp.net – 动态创建的LinkButtons的OnClick事件不起作用
|
我已经为这个问题尝试了几种解决方案,但它们都没有奏效.
这是我正在创建按钮并将其放入表中的代码: LinkButton lbtn = new LinkButton();
lbtn.ID = employee_arry[i] + "_lbtn" + i;
lbtn.Text = employee_arry[i];
lbtn.Click += new EventHandler(this.employee_info);
lbtn.CausesValidation = false;
lbtn.Attributes.Add("runat","server");
cell.Controls.Add(lbtn);
这是employee_info方法: //the info will be pulled from the database…
public void employee_info(object sender,EventArgs e)
{
name.Text = "employee name";
dept.Text = "employee department";
jobt.Text = "employee job title";
email.Text = "employee email";
tel.Text = "employee telephone";
ModalPopupExtender1.Show();
}
解决方法检查这个答案https://stackoverflow.com/a/11127064/1268570 这解释了动态控件的行为 你需要考虑: >当您不使用母版页时,应在PreInit事件中创建动态控件,如果是,则在Init事件中创建控件 编辑1 如果您还没有找到解决方案,这是一种方法(完整的工作示例): ASPX <asp:ScriptManager runat="server" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server" ViewStateMode="Enabled">
<ContentTemplate>
<asp:Panel runat="server" ID="myPanel">
</asp:Panel><br />
<asp:Button ID="Button1" Text="add control" runat="server" OnClick="addControl_Click" /><br />
<asp:Label ID="lblMessage" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
代码背后 protected int NumberOfControls
{
get
{
if (ViewState["c"] == null)
{
return 0;
}
return int.Parse(ViewState["c"].ToString());
}
set
{
ViewState["c"] = value;
}
}
protected void addControl_Click(object sender,EventArgs e)
{
this.NumberOfControls++;
this.myPanel.Controls.Add(new Literal { Text = "<br />" });
this.myPanel.Controls.Add(this.CreateLinkButton(this.NumberOfControls));
}
protected void Page_PreLoad(object sender,EventArgs e)
{
this.CreateDynamicLinkButtons();
}
private void CreateDynamicLinkButtons()
{
for (int i = 0; i < this.NumberOfControls; i++)
{
this.myPanel.Controls.Add(new Literal { Text = "<br />" });
this.myPanel.Controls.Add(this.CreateLinkButton(i + 1));
}
}
private LinkButton CreateLinkButton(int index)
{
var l = new LinkButton { Text = "MyLink" + index.ToString(),ID = "myLinkID" + index.ToString() };
l.Click += (x,y) =>
{
this.lblMessage.Text += "<br/>ID: " + (x as LinkButton).ID;
};
return l;
}
产量 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 在Asp.net MVC中导出到Excel [已关闭]
- asp.net-mvc – .Net 4内存缓存类和用户会话
- asp.net – 我可以隐藏/显示asp:菜单项基于角色吗?
- 在MVC 4中使用ASP.Net Identity
- asp.net-mvc – 具有区域的Url.Action()返回空字符串
- asp.net – Application_End应该在自动App Pool Recycle上启
- asp.net – 使用OLEDB读取CSV文件,即使连接字符串中的HDR =
- asp.net-mvc – 在发送到视图之前如何修改控制器动作中的表
- asp.net – NHibernate线程安全与会话
- asp.net – gridview在viewstate中保存数据吗?
