我对asp.net并不熟悉,对它的工作也知之甚少,而且随着我的前进,我的疑虑也越来越多。
此时,我正在处理两个在页面加载时被绑定的RadioLists。
现在,当用户更改列表1中的单选按钮索引时,需要根据当前为所选单选按钮设置的值得到相应的更新。由于页面将被回发,所以我要么需要再次触发查询才能从DataBase获得当前所选索引的新数据,要么可以以session的形式以Dataset的形式存储2-3个表。
在这种情况下我该怎么办。我是应该再次触发sql查询,还是从会话检索DataSet。
最理想的方法是什么。为什么呢?
发布于 2010-08-04 07:55:43
单选按钮列表1 (rbl1)的数据不应再次从数据库中检索。它应该已经从ViewState中填充了。这是页面上的一个不可见对象,它在将控件加载到浏览器和将窗体返回到服务器之间跟踪控件的内容。如果将rbl1重新绑定到回发中的数据,则将丢失当前选择。
如果结果将根据第一个选项的选择而改变,那么从数据库中检索发送无线电按钮列表的数据应该没有错。
但是,如果数据的大小很小,您可能希望将结果缓存到应用程序缓存中,如果所有用户都看到相同的数据集,或者如果它依赖于用户,则需要缓存会话缓存。
然后,您可以使用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
} https://stackoverflow.com/questions/3403176
复制相似问题