有没有人知道一种“共享”数据源而不会导致多次回发的方法?

时间:2008-11-03 15:58:56

标签: asp.net data-binding sqldatasource

例如,我有一个加载项目列表的SqlDataSource。在我的表单上,我有3个下拉框,它们都应包含相同的值列表,然后用户可以为每个值选择一个不同的值并保存。

通过将每个下拉列表连接到同一个SqlDataSource,数据库会被命中三次 - 每个对象将其列为一个数据源。如果我删除你在SmartTag界面中找到的“自动”链接,我仍然必须有代码隐藏,它会在每个组合框上调用DataBind,这将再次导致三次调用数据库。

我想我可以将值拉回到我存储在ViewState中的字符串列表中,但有更好的方法吗?

2 个答案:

答案 0 :(得分:2)

为什么不为数据源启用缓存?

答案 1 :(得分:-1)

您应该放弃对表单元素的直接数据绑定的依赖,只需构建一个复制或克隆的列表或数组。然后将单独的列表绑定到表单元素并“编写代码”以处理您希望它对数据源执行的操作。