有10个radiobutton,后台 控制哪个被选中,有个奇怪的现象.不知何解. 请大牛赐教!

vv587 2019-03-08 09:57:11
1.页面中放置10个 服务器控件 radiobutton,ID从 rb0 到 rb10, GroupName 均为 "k"
2.页面中有一List控件, 项 从 0 到 10
3.List控件的 SelectedIndexChanged()事件中, 根据 选中项 设置对应的 radiobutton 选中.

问题:
页面首次加载时, 点击List中的项, 从小到大点击, 代码起作用, 但是只要点完了 大数, 再点小数就不起作用了.
备注:
将List换成10个按钮, 现象一致.
换成radiobuttonlist控件,就没有问题了.
请大牛解答,产生这个问题的原是什么?

前台代码:
<asp:ListBox ID="List1" runat="server" class="ddlyxg"
AutoPostBack="True" OnSelectedIndexChanged="List1_SelectedIndexChanged"
Height="228px">
<asp:ListItem>0</asp:ListItem>
<asp:ListItem>1</asp:ListItem>
<asp:ListItem Value="2">2</asp:ListItem>
<asp:ListItem Value="3">3</asp:ListItem>
<asp:ListItem Value="4">4</asp:ListItem>
<asp:ListItem Value="5">5</asp:ListItem>
<asp:ListItem Value="6">6</asp:ListItem>
<asp:ListItem Value="7">7</asp:ListItem>
<asp:ListItem Value="8">8</asp:ListItem>
<asp:ListItem Value="9">9</asp:ListItem>
<asp:ListItem Value="10">10</asp:ListItem>
</asp:ListBox>
<asp:RadioButton ID="rb0" runat="server" Text="0分" GroupName="k" />
<asp:RadioButton ID="rb1" runat="server" Text="1分" GroupName="k" />
<asp:RadioButton ID="rb2" runat="server" Text="2分" GroupName="k" />
<asp:RadioButton ID="rb3" runat="server" Text="3分" GroupName="k" />
<asp:RadioButton ID="rb4" runat="server" Text="4分" GroupName="k" />
<asp:RadioButton ID="rb5" runat="server" Text="5分" GroupName="k" />
<asp:RadioButton ID="rb6" runat="server" Text="6分" GroupName="k" />
<asp:RadioButton ID="rb7" runat="server" Text="7分" GroupName="k" />
<asp:RadioButton ID="rb8" runat="server" Text="8分" GroupName="k" />
<asp:RadioButton ID="rb9" runat="server" Text="9分" GroupName="k" />
<asp:RadioButton ID="rb10" runat="server" Text="10分" GroupName="k" />

后台代码:
protected void List1_SelectedIndexChanged(object sender, EventArgs e)
{
int score = Convert.ToInt32(List1.SelectedValue);

switch (score)
{
case 0: rb0.Checked = true; break;
case 1: rb1.Checked = true; break;
case 2: rb2.Checked = true; break;
case 3: rb3.Checked = true; break;
case 4: rb4.Checked = true; break;
case 5: rb5.Checked = true; break;
case 6: rb6.Checked = true; break;
case 7: rb7.Checked = true; break;
case 8: rb8.Checked = true; break;
case 9: rb9.Checked = true; break;
case 10: rb10.Checked = true; break;
default:
break;
}
}

...全文
144 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
vv587 2019-03-11
  • 打赏
  • 举报
回复
[quote=引用 2 楼 3ch0 的回复:]
选中前先清空状态,原因不是很清除,估计又是ViewState什么的作怪,看了下请求,选中7之后再选择5,请求的数据里面发过去的还是按钮7。

谢谢谢谢.
添加了你的代码后. 问题解决了.


vv587 2019-03-11
  • 打赏
  • 举报
回复
引用 1 楼 丰云 的回复:
先不管你的问题,

ListItem的0和1两个项没有value, 为什么???

看着不别扭吗?


谢谢啊. 没注意. 这只是随便弄了个测试. 自动添加的项. 不知道为何前两个项没有value,不过应该不影响我的问题.
csdnFUCKINGSUCKS 2019-03-08
  • 打赏
  • 举报
回复
选中前先清空状态,原因不是很清除,估计又是ViewState什么的作怪,看了下请求,选中7之后再选择5,请求的数据里面发过去的还是按钮7。

foreach (Control item in form1.Controls)
{
    if (item is RadioButton)
    {
        RadioButton rb = item as RadioButton;
        rb.Checked = false;
    }
}
丰云 2019-03-08
  • 打赏
  • 举报
回复
先不管你的问题, ListItem的0和1两个项没有value, 为什么??? 看着不别扭吗?

62,039

社区成员

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

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

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

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