asp.net – 动态创建的LinkBut??tons的OnClick事件不起作用
我已经为这个问题尝试了几种解决方案,但它们都没有奏效.
基本上,我有一个员工表,用户可以选择通过更新面板动态添加员工.每个员工都被添加为LinkBut??ton,此按钮将通过OnClick事件触发ajaxToolkit:modalpopupextender窗口,此窗口将显示员工详细信息. 问题是,当我点击员工姓名时,弹出窗口会显示但不会显示详细信息. 这是我正在创建按钮并将其放入表中的代码: 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 Web Forms jQuery
- asp.net-mvc – 由Url.Action生成的Asp.Net MVC错误的URL!
- asp.net – 在div点击执行serverside代码
- asp.net-mvc – MVC 3远程验证字段具有复杂的名称
- asp.net-mvc – 在构建时尝试构建ASP MVC视图时出错
- entity-framework – 无法启用 – 迁移.引发System.BadImag
- .net – 使用DataAnnotations 4.0
- asp.net – 我可以在MasterPage中使用UpdatePanel来包装嵌套
- asp.net – Request.IsAuthenticated总是如此.我错过了吗?
- asp.net-mvc – 在我养成一个坏习惯之前需要建议