当我尝试在 ASP.Net 中创建动态按钮时,为什么会出现 NullReferenceException?
Why do I get NullReferenceException when I try to create dynamic buttons in ASP.Net?
我是 ASP.Net 的新手,我正在尝试编写一个网站来创建所需数量的按钮。我有一个文本框和一个按钮,我通过单击按钮从文本框中获取我想要的按钮数量,这很简单。
我有我写的这段代码。它应该有效,但我在 d1[k].ID 所在的行收到 "System.NullReferenceException: Object reference not set to an instance of an object." 错误。我稍微搜索了一下这个错误,发现这是因为 d1[k].ID 变量为空,但我不知道该怎么办。我该如何解决这个错误?
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
int Sayi = Convert.ToInt32(TextBox1.Text);
Button[] d1=new Button[Sayi];
int Sy = 20;
for (int k = 1; k <= Sayi; k++) {
d1[k].ID = "Btn" + k.ToString();
d1[k].Width = 100;
d1[k].Height = 25;
d1[k].Text = k.ToString();
d1[k].Attributes.Add("style", "top:"+Sy+"; left:10 ;position:absolute");
Sy += 20;
}
}
您创建的是按钮数组的实例,而不是按钮本身,因此它应该是:
int Sayi = Convert.ToInt32(TextBox1.Text);
Button[] d1=new Button[Sayi];
int Sy = 20;
for (int k = 0; k < Sayi; k++) {
var b = new Button()
b.ID = "Btn" + k.ToString();
b.Width = 100;
b.Height = 25;
b.Text = k.ToString();
b.Attributes.Add("style", "top:"+Sy+"; left:10 ;position:absolute");
Sy += 20;
d1[k] = b;
}
d1[k]
没有 Button
引用,您需要在设置属性之前在该索引处创建一个:
d1[k] = new Button();
我是 ASP.Net 的新手,我正在尝试编写一个网站来创建所需数量的按钮。我有一个文本框和一个按钮,我通过单击按钮从文本框中获取我想要的按钮数量,这很简单。 我有我写的这段代码。它应该有效,但我在 d1[k].ID 所在的行收到 "System.NullReferenceException: Object reference not set to an instance of an object." 错误。我稍微搜索了一下这个错误,发现这是因为 d1[k].ID 变量为空,但我不知道该怎么办。我该如何解决这个错误?
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
int Sayi = Convert.ToInt32(TextBox1.Text);
Button[] d1=new Button[Sayi];
int Sy = 20;
for (int k = 1; k <= Sayi; k++) {
d1[k].ID = "Btn" + k.ToString();
d1[k].Width = 100;
d1[k].Height = 25;
d1[k].Text = k.ToString();
d1[k].Attributes.Add("style", "top:"+Sy+"; left:10 ;position:absolute");
Sy += 20;
}
}
您创建的是按钮数组的实例,而不是按钮本身,因此它应该是:
int Sayi = Convert.ToInt32(TextBox1.Text);
Button[] d1=new Button[Sayi];
int Sy = 20;
for (int k = 0; k < Sayi; k++) {
var b = new Button()
b.ID = "Btn" + k.ToString();
b.Width = 100;
b.Height = 25;
b.Text = k.ToString();
b.Attributes.Add("style", "top:"+Sy+"; left:10 ;position:absolute");
Sy += 20;
d1[k] = b;
}
d1[k]
没有 Button
引用,您需要在设置属性之前在该索引处创建一个:
d1[k] = new Button();