listbox数据始终显示在第一行

hao2629 2012-04-18 08:29:27
前台
<asp:ListBox ID="ListBox3" runat="server" AutoPostBack="True"
onselectedindexchanged="ListBox3_SelectedIndexChanged1">
</asp:ListBox>
后台
protected void ListBox3_SelectedIndexChanged1(object sender, EventArgs e)
{
string id1= this.ListBox1.SelectedItem.Value.ToString();
string id2= this.ListBox2.SelectedItem.Value.ToString();
string id3= this.ListBox3.SelectedItem.Value.ToString();

}


页面有3个listbox
点击listbox1中的数据 显示listbox2 点击listbox2中数据 显示listbox3
现在问题是
数据都能显示出来 但选中listbox3中某个数据时焦点老不在所选择的那个数据上 而是自动跳到第一个数据上
什么原因


...全文
624 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
hao2629 2012-04-21
  • 打赏
  • 举报
回复
[Quote=引用 31 楼 的回复:]
抱歉把你搞晕了~我表达也有问题~
Page_Load
{
if(!ispostback)
{
绑定1方法;
ListBox1.SelectedIndex=1;
绑定2方法;
ListBox2.SelectedIndex=1;
绑定3方法
}
}

引用 30 楼 的回复:

引用 29 楼 的回复:
额 我想可能是因为你用的listB……
[/Quote]
没事 没事 非常感谢您能帮我解决问题 我先试试起
xboxeer 2012-04-21
  • 打赏
  • 举报
回复
抱歉把你搞晕了~我表达也有问题~
Page_Load
{
if(!ispostback)
{
绑定1方法;
ListBox1.SelectedIndex=1;
绑定2方法;
ListBox2.SelectedIndex=1;
绑定3方法
}
}
[Quote=引用 30 楼 的回复:]

引用 29 楼 的回复:
额 我想可能是因为你用的listBox的缘故 是不是初始没有选择的?因为我刚刚一直都是针对dropdownlist讲的 这个是初始必定有一个选中的~
你可以在if(!ispostback)里面在绑定1之后手动设置1的选项到第一个上面 这个顺序不能错 然后2也是这样~

引用 28 楼 的回复:

引用 27 楼 的回复:
有值 逻辑上 初次打开页面绑定的……
[/Quote]
hao2629 2012-04-21
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 的回复:]
额 我想可能是因为你用的listBox的缘故 是不是初始没有选择的?因为我刚刚一直都是针对dropdownlist讲的 这个是初始必定有一个选中的~
你可以在if(!ispostback)里面在绑定1之后手动设置1的选项到第一个上面 这个顺序不能错 然后2也是这样~

引用 28 楼 的回复:

引用 27 楼 的回复:
有值 逻辑上 初次打开页面绑定的都是默认值 就是1的选项1然后通……
[/Quote]


有点晕了
直接在后台加 ListBox1.SelectedIndex = 1? 还是控件里设置?
xboxeer 2012-04-21
  • 打赏
  • 举报
回复
额 我想可能是因为你用的listBox的缘故 是不是初始没有选择的?因为我刚刚一直都是针对dropdownlist讲的 这个是初始必定有一个选中的~
你可以在if(!ispostback)里面在绑定1之后手动设置1的选项到第一个上面 这个顺序不能错 然后2也是这样~
[Quote=引用 28 楼 的回复:]

引用 27 楼 的回复:
有值 逻辑上 初次打开页面绑定的都是默认值 就是1的选项1然后通过这个去绑定2 2的默认选项1再去绑定3 因为绑定后默认你的这些控件selectedindex都是1

未将对象引用设置到对象的实例。
这是错误。。
[/Quote]
hao2629 2012-04-21
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 的回复:]
有值 逻辑上 初次打开页面绑定的都是默认值 就是1的选项1然后通过这个去绑定2 2的默认选项1再去绑定3 因为绑定后默认你的这些控件selectedindex都是1
[/Quote]
未将对象引用设置到对象的实例。
这是错误。。
xboxeer 2012-04-21
  • 打赏
  • 举报
回复
有值 逻辑上 初次打开页面绑定的都是默认值 就是1的选项1然后通过这个去绑定2 2的默认选项1再去绑定3 因为绑定后默认你的这些控件selectedindex都是1
hao2629 2012-04-21
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 的回复:]
str怎么了?

引用 24 楼 的回复:

引用 23 楼 的回复:
这里有一个很重要的概念 就是Page_Load事件 发生在 SelectedIndexChanged事件之前 如果你不把1,2,3的绑定放在if(!ispostback)里面的话 那么每次都是先执行的1,2,3的绑定再执行SelectedIndexChanged事件,而先执行了1,2,3的绑定等于说每次你Select……
[/Quote]

str的值 应该是选中1时 获取到
如果直接在page_load

绑定1();
绑定2();


绑定2也就是
private void 绑定2()

string str =listbox1.SelectedItem.Value;
listbox2.DataSource = BGame.GetAllById(int.Parse(str));
listbox2.DataTextField = "gameName";
listbox2.DataValueField = "gameId";
listbox2.DataBind();
}获取数据

你直接在page_load就绑定了2 你打开页面时候 这str值不是没有么?
xboxeer 2012-04-21
  • 打赏
  • 举报
回复
str怎么了?
[Quote=引用 24 楼 的回复:]

引用 23 楼 的回复:
这里有一个很重要的概念 就是Page_Load事件 发生在 SelectedIndexChanged事件之前 如果你不把1,2,3的绑定放在if(!ispostback)里面的话 那么每次都是先执行的1,2,3的绑定再执行SelectedIndexChanged事件,而先执行了1,2,3的绑定等于说每次你SelectedIndexChanged事件获取到的Selec……
[/Quote]
hao2629 2012-04-21
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 的回复:]
这里有一个很重要的概念 就是Page_Load事件 发生在 SelectedIndexChanged事件之前 如果你不把1,2,3的绑定放在if(!ispostback)里面的话 那么每次都是先执行的1,2,3的绑定再执行SelectedIndexChanged事件,而先执行了1,2,3的绑定等于说每次你SelectedIndexChanged事件获取到的SelectedValue都是默认绑定值 ……
[/Quote]

除了listbox3的值每次显示第一个 其他的都是选择那个是那个。。。
而按照您说的话 绑定2


string str =listbox1.SelectedItem.Value;
listbox2.DataSource = BGame.GetAllById(int.Parse(str));
listbox2.DataTextField = "gameName";
listbox2.DataValueField = "gameId";
listbox2.DataBind();



每次刷新页面 此str为什么?
xboxeer 2012-04-21
  • 打赏
  • 举报
回复

这里有一个很重要的概念 就是Page_Load事件 发生在 SelectedIndexChanged事件之前 如果你不把1,2,3的绑定放在if(!ispostback)里面的话 那么每次都是先执行的1,2,3的绑定再执行SelectedIndexChanged事件,而先执行了1,2,3的绑定等于说每次你SelectedIndexChanged事件获取到的SelectedValue都是默认绑定值 也就是第一个值
[Quote=引用 22 楼 的回复:]

引用 21 楼 的回复:
一般是这样 对于级联 设1,2,3 3个级联菜单
page_load事件
{
if(!ispostback)
{
绑定1方法
绑定2方法
绑定3方法
}
}
1的SelectedIndexChanged事件
{
绑定2方法
绑定3方法
}
2的SelectedIndexChanged事件
{
绑定3方法
}
绑定1方法
{…………
[/Quote]
hao2629 2012-04-21
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 的回复:]
一般是这样 对于级联 设1,2,3 3个级联菜单
page_load事件
{
if(!ispostback)
{
绑定1方法
绑定2方法
绑定3方法
}
}
1的SelectedIndexChanged事件
{
绑定2方法
绑定3方法
}
2的SelectedIndexChanged事件
{
绑定3方法
}
绑定1方法
{……
[/Quote]
但2的数据由listbox的ID查出来 3的数据由listbox2的ID查出来
直接page_load事件
{
1 2 3}
不会有问题?
xboxeer 2012-04-21
  • 打赏
  • 举报
回复
一般是这样 对于级联 设1,2,3 3个级联菜单
page_load事件
{
if(!ispostback)
{
绑定1方法
绑定2方法
绑定3方法
}
}
1的SelectedIndexChanged事件
{
绑定2方法
绑定3方法
}
2的SelectedIndexChanged事件
{
绑定3方法
}
绑定1方法
{
获取数据源
绑定1
}
绑定2方法
{
根据1选取的值重新获取数据源;
绑定2;
}
绑定3方法
{
根据2选取的值重新获取数据源;
绑定3;
}
[Quote=引用 20 楼 的回复:]

引用 19 楼 的回复:
你这样写 每次回发都重新绑定了骚年

引用 17 楼 的回复:

引用 16 楼 的回复:
page_load
if(ispostbanck)

绑定listbox1

你这是打错还是真写的这样?

真是这样写的
而且这里没有任何报错

那不加这句话
每次点击listbox里的值 自动刷新页面

第一个listbox的数据怎……
[/Quote]
hao2629 2012-04-21
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 的回复:]
你这样写 每次回发都重新绑定了骚年

引用 17 楼 的回复:

引用 16 楼 的回复:
page_load
if(ispostbanck)

绑定listbox1

你这是打错还是真写的这样?

真是这样写的
而且这里没有任何报错
[/Quote]
那不加这句话
每次点击listbox里的值 自动刷新页面

第一个listbox的数据怎么处理?
xboxeer 2012-04-21
  • 打赏
  • 举报
回复
你这样写 每次回发都重新绑定了骚年
[Quote=引用 17 楼 的回复:]

引用 16 楼 的回复:
page_load
if(ispostbanck)

绑定listbox1

你这是打错还是真写的这样?

真是这样写的
而且这里没有任何报错
[/Quote]
hao2629 2012-04-21
  • 打赏
  • 举报
回复
问题还没解决 请大家帮帮忙
hao2629 2012-04-19
  • 打赏
  • 举报
回复
新的一天又开始了
hao2629 2012-04-19
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 的回复:]
page_load
if(ispostbanck)

绑定listbox1

你这是打错还是真写的这样?
[/Quote]
真是这样写的
而且这里没有任何报错
xboxeer 2012-04-19
  • 打赏
  • 举报
回复
page_load
if(ispostbanck)

绑定listbox1

你这是打错还是真写的这样?
hao2629 2012-04-19
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 的回复:]
你肯定page_load里面写了三个listbox的绑定代码但是没有放在(!ispostback)里面
[/Quote]
page_load
if(ispostbanck)

绑定listbox1

而数据2
protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
绑定Listbox2
}
数据3也是跟上面样

这样是一级一级点击查询出来的
不是加载页面的时候 3个Listbox的数据都有


xboxeer 2012-04-19
  • 打赏
  • 举报
回复
你肯定page_load里面写了三个listbox的绑定代码但是没有放在(!ispostback)里面
加载更多回复(12)

62,240

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧