我们如何将 2 个不同的数据集绑定到同一个 DevExpress gridview。根据我选择的值,它应该填充第一个或第二个数据集。
恩
是否有任何特定条件取决于用于填充 aspxgridview 的数据集?
您可以在类文件中检查该条件,然后根据该条件返回所需的数据集。
只需将与条件相关的一个参数传递给方法并返回准确的数据集,然后将其绑定到网格。
你试过什么?
无论如何,这些是可行的不同方法:
grid.DataSource
在 Page/UserControl Load 事件中赋值;确保Bind
按要求进行。grid.DataSource
的事件中分配并在 Load 事件中酌情调用(因此事件被调用)。OnDataBinding
Bind
OnExecuteSelect
函数1)。如果在标记中设置,DataSourceId=".."
那么它将自动绑定。ObjectDataSource
也LinqDataSource
可以采用声明性参数。在大多数情况下,我更喜欢#3。它是“绑定延迟”,这意味着状态需要确定要绑定的数据集(例如响应事件)已经更新。否则事件将不得不重新绑定网格,这是一种浪费的绑定。作为奖励,还可以确保 ViewState 不混乱/不被利用。
当然,在这些交叉点中的每一个处,分配“正确”的数据集。
如果有两个不同的数据集具有不同的列/排序配置,那么另一种选择是很好的,它只是创建两个控件,然后在它们之间切换可见性(真正的可见性,而不仅仅是客户端的可见性)。如果控件不可见,请避免将数据绑定到它,因为这是一种浪费的操作。
快乐编码!
1 LinqDataSource
并且ServerModeLinqDataSource
也可以采用“选择方法”,但我发现 GenericDataSource 提供的接口更易于使用,并且在尝试更新数据源时没有几个“陷阱”。ObjectDataSource 只是 GAC 解决方案中要处理的 PITA,使用起来感觉像是一种负担。