C# 变量在当前上下文中不存在
我是C#NET的新手。我想问一下这是怎么回事。。。我想要的只是显示从1到100的年龄选择 在我放这段代码的C# 变量在当前上下文中不存在,c#,.net,asp.net,variables,C#,.net,Asp.net,Variables,我是C#NET的新手。我想问一下这是怎么回事。。。我想要的只是显示从1到100的年龄选择 在我放这段代码的.aspx文件中,我对变量列表使用了数据绑定 <asp:DropDownList ID="AgeDropDown" runat="server"> <%# listAge %> </asp:DropDownList> 下面是它背后的代码: protected void Page_Load(object sender, EventArgs e
.aspx
文件中,我对变量列表使用了数据绑定
<asp:DropDownList ID="AgeDropDown" runat="server">
<%# listAge %>
</asp:DropDownList>
下面是它背后的代码:
protected void Page_Load(object sender, EventArgs e)
{
for (int i = 1; i < 101; i++)
{
string listAge;
listAge = "<asp:ListItem>"+ i +"</asp:ListItem>";
}
}
受保护的无效页面加载(对象发送方,事件参数e)
{
对于(int i=1;i<101;i++)
{
字符串列表;
listAge=“+i+”;
}
}
.aspx
中显示的错误是:
创建控件时出错:AgeDropDown
-在此上下文中不支持代码块
因为变量listAge
谢谢你的帮助 将该部分放入.aspx和代码隐藏中,您应该执行以下操作:
protected void Page_Load(object sender, EventArgs e)
{
AgeDropDown.Items.Clear();
for (int i = 1; i < 101; i++)
{
AgeDropDown.Items.Add(new ListItem(i.ToString(),i.ToString()));
}
}
受保护的无效页面加载(对象发送方,事件参数e)
{
AgeDropDown.Items.Clear();
对于(int i=1;i<101;i++)
{
AgeDropDown.Items.Add(新列表项(i.ToString(),i.ToString());
}
}
从另一个角度来看,您的代码中有几个缺陷:
您正在代码隐藏中生成ASP.NET标记。ASP标记在服务器上处理,并呈现为html标记。实际上,您在html中插入了一个标记,浏览器将以简单文本的形式呈现,因为它不是有效的html标记李>
您在for循环的每次迭代中都创建了一个新的listAge变量。即使代码可以工作,它也只会显示最后一项
将该部分放在.aspx和代码中,您应该执行以下操作:
protected void Page_Load(object sender, EventArgs e)
{
AgeDropDown.Items.Clear();
for (int i = 1; i < 101; i++)
{
AgeDropDown.Items.Add(new ListItem(i.ToString(),i.ToString()));
}
}
受保护的无效页面加载(对象发送方,事件参数e)
{
AgeDropDown.Items.Clear();
对于(int i=1;i<101;i++)
{
AgeDropDown.Items.Add(新列表项(i.ToString(),i.ToString());
}
}
从另一个角度来看,您的代码中有几个缺陷:
您正在代码隐藏中生成ASP.NET标记。ASP标记在服务器上处理,并呈现为html标记。实际上,您在html中插入了一个标记,浏览器将以简单文本的形式呈现,因为它不是有效的html标记李>
您在for循环的每次迭代中都创建了一个新的listAge变量。即使代码可以工作,它也只会显示最后一项
这是asp.net还是MVC
大概
应该是
这是在asp.net还是在MVC中
大概
应该是
您可以使用服务器版本的AgeDropDown
ListItem li;
for (int i = 1; i < 101; i++)
{
li = new ListItem(i.ToString(), i.ToString());
AgeDropDown.Items.Add(li);
}
列表项li;
对于(int i=1;i<101;i++)
{
li=新列表项(i.ToString(),i.ToString());
AgeDropDown.Items.Add(li);
}
您可以使用服务器版本的AgeDropDown
ListItem li;
for (int i = 1; i < 101; i++)
{
li = new ListItem(i.ToString(), i.ToString());
AgeDropDown.Items.Add(li);
}
列表项li;
对于(int i=1;i<101;i++)
{
li=新列表项(i.ToString(),i.ToString());
AgeDropDown.Items.Add(li);
}
我只是像这样编辑代码AgeDropDown.Items.Add(newlistItem(I.ToString())代码>并且它工作!顺便说一句,doublei.ToString()
的作用是什么?第二个参数是与项目相关联的值,它可以是不同的值,如id或something@EronListItem的一个构造函数具有以下签名ListItem(字符串文本,字符串值),它创建了一个类似于此文本的ListItem。如果显示的文本与存储在数据库中的值不同,则使用此选项。例如,国家下拉列表显示国家名称,但在数据库中存储国家ID(0在数据库中;美国在下拉框中)。我只需编辑如下代码AgeDropDown.Items.Add(new ListItem(I.ToString())代码>并且它工作!顺便说一句,doublei.ToString()
的作用是什么?第二个参数是与项目相关联的值,它可以是不同的值,如id或something@EronListItem的一个构造函数具有以下签名ListItem(字符串文本,字符串值),它创建了一个类似于此文本的ListItem。如果显示的文本与存储在数据库中的值不同,则使用此选项。E.x.国家下拉列表显示国家名称,但在数据库中存储国家ID(数据库中为0;下拉框中为美国)。