2010-08-04 74 views
1

我对asp.net很陌生,对它的工作一窍不通,随着我的前进,我越来越感到新的疑惑。如何在这种情况下将连接请求保存到数据库

在这里,我正在处理页面加载时绑定的两个RadioLists

现在当用户更改列表1中单选按钮的索引时。第二个需要相应更新,具体取决于当前为所选单选按钮设置的值。 由于页面将被重新发布,因此我需要再次触发查询以从当前选定索引的DataBase中获取新数据,或者可以以Dataset的形式在session中存储2-3个表格。

在这种情况下应该怎么做。我应该再次触发sql查询从会话检索数据集。

什么是最优化的方法。为什么?

回答

1

不应再从数据库中检索单选按钮列表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 
} 
相关问题