我有两个asp:button
名为Show
和Submit
。它们在.designer.cs
中声明为:
protected global::System.Web.UI.WebControls.Button Show;
protected global::System.Web.UI.WebControls.Button Submit;
我希望将它们添加到List<Button>
:
List<Button> buttons = new List<Button> {Show,Submit};
这不是让我这样做的。 2错误显示
字段初始值设定项 不能引用非静态字段,方法或属性。
,非静态对象为Show
和Submit
。所以我认为我没有将它们添加到初始化程序中的列表中。
List<Button> buttons = new List<Button> ();
buttons.Add(Show);
但VS告诉我buttons
和Show
是字段,但我将它们用作类型。谁能告诉我正确的方法呢?
更改按钮名称后的类:
public partial class _Default : Page
{
List<Button> buttons = new List<Button> ();
buttons.Add(btnShow);
// some click events below
}
解:
解决方案是:初始化List或将元素添加到Page_Load
中的List:
public partial class _Default : Page
{
private List<Button> tableButtons;
protected void Page_Load(object sender, EventArgs e)
{
tableButtons= new List<Button>();
tableButtons.Add(btnSubmit);
tableButtons.Add(btnShow);
}
}
答案 0 :(得分:1)
如果按钮位于同一表格上,您可以执行以下操作
List<Button> buttons = this.Controls.OfType<Button>().ToList();
或您的原始代码
List<Button> buttons = new List<Button>
{
Show, Submit
};
答案 1 :(得分:0)
看起来您的代码正常运行,但我想解释为什么它可以在将来帮助您。
您收到这些错误的原因是您尝试将代码置于_Default
的类定义中。在类定义中,您可以定义字段,属性,方法以及其他一些不值得进入的内容,但重要的是您不能在定义中放置任意代码。
您需要将代码放在类的方法中,以便它能够正确编译和运行。但是,由于您是在网络表单中执行此操作,因此您还需要通过将其放在ASP.NET Lifecycle Events之一(如Page_Load)或#&#方法中来调用您的代码。 39;由一个生命周期事件调用。
希望这会有所帮助。欢呼声。