如何找到动态创建按钮的容器 ASP.net
Posted
技术标签:
【中文标题】如何找到动态创建按钮的容器 ASP.net【英文标题】:How to find container of dynamically created button ASP.net 【发布时间】:2020-12-06 12:40:13 【问题描述】:我有一个 WebForm,它的控件是动态创建的,因为它们的数量可以变化。每个元素都是一个 Panel,其中包含一个 TextBox、一个 DropDownList 和一个 Button。 每个控件都有一个唯一的 ID,所有的按钮都有相同的 clickEvent。在 clickEvent 的代码中,我想获取 presedButton 所属的面板的 ID,以便我可以从该面板的 DropDownList 和 TextBox 中访问所选值。 我该怎么做?
【问题讨论】:
【参考方案1】:private void button1_Click(object sender, EventArgs e)
var panelId = ((Button)sender).Parent.ID;
或者你可以直接获取控件
private void button1_Click(object sender, EventArgs e)
var myTextbox = ((Button)sender).Parent.Controls.OfType<TextBox>().FirstOrDefault();
var myDropDownlist = ((Button)sender.Parent.Controls.OfType<DropDownList>().FirstOrDefault();
或通过控件 ID:
private void button1_Click(object sender, EventArgs e)
var myTextbox = ((Button)sender).Parent.Controls.OfType<TextBox>().Where(x => x.ID == "textboxID").SingleOrDefault();
var myDropDownlist = ((Button)sender).Parent.Controls.OfType<DropDownList>().Where(x => x.ID == "dropdownlistID").SingleOrDefault();
【讨论】:
以上是关于如何找到动态创建按钮的容器 ASP.net的主要内容,如果未能解决你的问题,请参考以下文章
Asp.net MVC 5 动态创建按钮并调用带有参数的 javascript 函数
使用 ajax 动态创建 TABCONTAINER ASP.NET