非常奇怪的,今天在使用VS2005时,新建一个my.aspx页,然后在上面拖入listBox和button这两个东东后,在后台加这样的代码: protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
for (int i = 0; i < 10; i++)//生成10个值
ListBox1.Items.Add(new ListItem("a" + i.ToString(), "a"));
} }
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write(ListBox1 .SelectedIndex);//显示选中索引值
}不管我选中的是第八项,还是第九,还是其它,其测试结果却一直为:0。
而当我把Page_load的代码删除,在.aspx页手动加上10个选项的却可以。所以想问下,以上问题如何解决?
感谢!
{
if (!Page.IsPostBack)
{
for (int i = 0; i < 10; i++)//生成10个值
ListBox1.Items.Add(new ListItem("a" + i.ToString(), "a"));
} }
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write(ListBox1 .SelectedIndex);//显示选中索引值
}不管我选中的是第八项,还是第九,还是其它,其测试结果却一直为:0。
而当我把Page_load的代码删除,在.aspx页手动加上10个选项的却可以。所以想问下,以上问题如何解决?
感谢!
解决方案 »
- 求fileupload大文件上传?有没有开源的组件可用
- Repeater 绑定的时候截取字符串前10个字符?
- 如何将 input 上传控件的‘浏览’改成英文
- 怎样从外部服务器下载文件?怎样判断文件是否下载完成?
- 只知道服务器端ID,有没有办法取父窗口该控件的客户端ID?
- ASP.net缓存图片的问题,高手请解答,尤其是孟子达人,怎么找你啊
- 插入数据成功弹出确认框,关闭页面
- 请教一个困惑已经好长时间的问题:请在QQ上加我87642634我发给你文件也好,粘代码也发,如果问题解决200分奉上,不够再加100分
- 为什么在DataGrid中,编辑(或者是,换页)等,总是按两下才能执行?
- IIs6.0可以在2000,XP,98下安装吗?
- 关于在 GridView 中写 JavaScript 问题
- 局域网中Web服务器防火墙(XP SP2 自带防火墙)的设置
换成ListBox1.Items.Add("a" + i.ToString());就可以了asp.net是多线程的,简单的说就是在一个事件中改变一个全局变量的值,在另一个事件中,是无法直接获得改变后的值的.两个线程间是相互独立的...
{
if (!Page.IsPostBack)
{
for (int i = 0; i < 10; i++)//生成10个值
{
ListBox1.Items.Add(new ListItem("a" + i.ToString()));
ListBox1.Items[i].Value = "a" + i.ToString();
}
}
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write("text"+ListBox1.SelectedItem.Text+"Value:"+this.ListBox1.SelectedValue);//显示选中文本和索引值
}
改成这样看看
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
for (int i = 0; i < 4; i++)//生成4个值
ListBox1.Items.Add(new ListItem("a" + i.ToString(), "a"));
for (int i = 4; i < 10; i++)//生成6个值
ListBox1.Items.Add(new ListItem("a" + i.ToString(), "b"));
}这时候,你选前4个,返回的都是第一个;你选后6个,返回的都是第6个!
——————————————————————————————————————————
这个回复挺有“仙”气的,怎么想出来的?
{
if (!Page.IsPostBack)
{
for (int i = 0; i < 10; i++)//生成10个值
ListBox1.Items.Add(new ListItem("a","a" + i.ToString()));
} }ListBox 是按照浏览器发过来的value值然后与item从前向后逐一匹配的,一旦value相同,立刻结束查找,这最后找到的位置就是 SelectedIndex。