【发布时间】:2011-02-27 11:22:31
【问题描述】:
我们有一个 Gridview,它通过 DataSource 填充。数据源的 SelectMethod 是 BL 类中的一个函数,它调用一个返回 2 个结果集的存储过程。第一个结果集应该填充网格视图,因此它通过“return”关键字返回,并且工作正常。第二个结果集供以后使用(我们没有将它们分成 2 个 SP,因为查询应用相同的逻辑来获取两个结果集,这是一个很长的逻辑,所以我们不想运行它两次)。我们的问题是如何保存第二个结果集以供以后使用。
我们最初考虑在 BL 类中创建一个全局成员,并将结果集保存到它。但问题是,当我们需要使用第二个结果集时,我们不在 gridview 所在的同一个类中,并且其他类创建了它自己的 BL 类的实例,当然该对象不会'没有数据(数据在gridview所在的aspx页面创建的对象中)。
于是我们想到向数据源的 SelectMethod 传递一个“out”参数,该方法会将第二个结果集保存到该 out 参数。但这行不通。我想我们不知道如何告诉方法一个参数是“out”。我们传递其他参数的方式是定义一个附加到 OnSelecting 事件的方法,然后我们这样传递它们:
e.InputParameters["schoolCode"] = currentSchoolCode;
e.InputParameters["levelCode"] = currentLayer;
等等。但是,我们不知道如何告诉方法参数“out”。当我们google了一下,我们所能找到的就是如何告诉方法一个参数是否是一个输出参数——也就是说,作为一个输出参数传递给SP。但这里不是这样。
因此,如果您能帮助我们找到以下解决方案,我们将不胜感激:
“告诉”方法某个参数是“out”,以便将值放入其中。
谢谢。
【问题讨论】: