如何找到动态创建按钮的容器 ASP.net
How to find container of dynamically created button ASP.net
我有一个 WebForm,其控件是动态创建的,因为它们的数量可能不同。每个元素都是一个面板,其中包含一个文本框、一个下拉列表和一个按钮。
每个控件都有一个唯一的 ID,所有按钮都有相同的 clickEvent。在 clickEvent 的代码中,我想获取 presedButton 所属面板的 ID,以便我可以访问该面板的 DropDownList 中的所选值和 TextBox 中的文本。
我怎样才能做到以上几点?
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();
}
我有一个 WebForm,其控件是动态创建的,因为它们的数量可能不同。每个元素都是一个面板,其中包含一个文本框、一个下拉列表和一个按钮。
每个控件都有一个唯一的 ID,所有按钮都有相同的 clickEvent。在 clickEvent 的代码中,我想获取 presedButton 所属面板的 ID,以便我可以访问该面板的 DropDownList 中的所选值和 TextBox 中的文本。
我怎样才能做到以上几点?
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();
}