不应再从数据库中检索单选按钮列表1(rbl1)的数据。它应该已经从ViewState中填充。这是您页面上的一个不可见对象,用于在将控件加载到浏览器并将表单返回给服务器之间跟踪控件的内容。如果您将rbl1重新绑定到回发中的数据,则会丢失当前的选择。
如果结果将根据第一个的选择而改变,那么从数据库检索发送radiobuttonlist的数据应该没有问题。但是,如果数据的大小很小,则可能需要将结果缓存到应用程序缓存(如果所有用户都看到相同的数据集,或者会话缓存是用户相关的)。
然后,您可以使用Linq根据第一个单选按钮列表中的选择来查询数据。
<asp:RadioButtonList ID="rbl1" runat="server" AutoPostBack = "true"
OnSelectedIndexChanged="rbl1_SelectedIndexChanged">
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
//bind your rbl1 here
}
}
protected void rbl1_SelectedIndexChanged(object sender, EventArgs e)
{
//load your second radio button list depending on the selection of the first
}