C# 错误错误:尝试设置asp.net radiobuttonlist从codebehind中选择的项目时返回错误

C# 错误错误:尝试设置asp.net radiobuttonlist从codebehind中选择的项目时返回错误,c#,asp.net,C#,Asp.net,使用以下代码时,将返回此错误: “rblPermisSejourA”有一个SelectedValue,该值无效,因为它不在项目列表中 奥村 奥村 受保护的无效ws2_OnDeactivate(对象发送方,事件参数e) { rblPermisSejourA.SelectedValue=rblPermisSejour.SelectedValue; } 请注意,“rblPermisSejour”在向导步骤中,“rblPermisSejourA”在另一个尚未激活的向导步骤中(存在“rblPermis

使用以下代码时,将返回此错误: “rblPermisSejourA”有一个SelectedValue,该值无效,因为它不在项目列表中


奥村
奥村
受保护的无效ws2_OnDeactivate(对象发送方,事件参数e)
{
rblPermisSejourA.SelectedValue=rblPermisSejour.SelectedValue;
}
请注意,“rblPermisSejour”在向导步骤中,“rblPermisSejourA”在另一个尚未激活的向导步骤中(存在“rblPermisSejourA”的步骤没有id和标题)。激活此步骤后,一切正常
但是使用相同的代码和相同的操作,另一个RadioButtonList运行得非常好,并且这个在相同的上下文中(向导步骤未激活)。

来自您的评论

<asp:ListItem Selected="True" Value="1">A</asp:ListItem>
<asp:ListItem Selected="True" Value="2">C</asp:ListItem>
正在尝试去做并找出你的错误

编辑

你试过类似的东西吗

rblPermisSejourA.Items.FindByValue(rblPermisSejour.SelectedValue).Selected = true;
你试过了吗

rblPermisSejourA.SelectedValue = rblPermisSejour.SelectedItem.Value;

这就是解决方案:


如果(rblPermisSejourA.Items.Count错误表明,你在rblPermisSejour中选择的值在rblPermisSejourA中不存在。这是否正确?你能提供一个例子说明调用函数时两个列表中的内容吗?@DavidAGibson:是的,这是错误的表现。这就像没有加载列表A的动态数据一样。exemple:
rblPermisSejourA.SelectedValue=“-1”
起作用,但不是
rblPermisSejourA.SelectedValue=“1”
。两个列表的假定内容相同的示例:
A C
事实上,如果您转到列表A的向导步骤一次,数据会正确加载。对不起,我在注释中更正了数据列表,没有其他内容“选定”项。两个列表完全连接到同一数据源:“EntityDataSourcePermisSejour”":
您想要完整的代码吗?嗨,西斯纳夫,我不认为这是关于数据源的,上面这行行行行行吗?如果不行,那么可能是在您试图设置rblPermisSejourA时,rblPermisSejour中的项目已被清除。您可能需要将所选值存储在一个变量中,该变量将在向导步骤之间持续—尽管我我觉得这听起来不太可能。嗨,大卫,谢谢你的建议,这很好,但你必须记住,如果你试图在a列表中选择一个值,你会遇到同样的错误:`rblPermisSejourA.SelectedValue=“1”'例如,A列表似乎没有正确加载。但我该怎么办?嗨,大卫,我尝试了你的建议。
rblPermisSejourA.SelectedValue=rblPermisSejour.SelectedValue;
:同样的问题,同样的错误。对不起,我刚刚尝试过:同样的问题,同样的错误。事实上,问题是rblPermisSejour没有加载A的完整数据t第一次。我不知道为什么,因为相关步骤中的其他控件加载正确。我只是发现一些有趣的事情:如果我删除rblPermisSejourA中的行
Aucun
,它工作正常。但事实上,我需要这一特殊行,它一直添加到前面的代码中。调试代码并确保下拉列表中填充了data在初始化上述过程之前…还要确保其他一些函数没有在运行时清除/重新初始化dropdownlist…不可能…调试模式显示的内容与我之前说过的相同:只加载一个项,即前面代码中定义的项。如果删除此项,列表(即rblPermisSejourA)正确地加载了它的五个元素。它工作得很好。但是无论如何,我需要添加“null”元素!添加了两行代码,而没有更改任何其他内容。由于RadioButtonList控件“rblPermisSejourA”仅在装模作样后加载前面代码中的项,因此我强制使用单个数据绑定()绑定数据由于EntityDataSource已在前端代码中定义和链接。我测试这些补充项(即来自数据库)是否尚未加载有关列表元素数量的条件。
rblPermisSejourA.Items.FindByValue(rblPermisSejour.SelectedValue).Selected = true;
rblPermisSejourA.SelectedValue = rblPermisSejour.SelectedItem.Value;