【问题标题】:Forcing the order that datasets get resolved?强制解决数据集的顺序?
【发布时间】:2014-01-10 00:17:02
【问题描述】:

我在一个 .net 页面上有 3 个数据源和相关的中继器:

<asp:SqlDataSource ID="dsMain" runat="server" 
    SelectCommand="mySP1" SelectCommandType="StoredProcedure">
<asp:SqlDataSource ID="dsHeader" runat="server" 
    SelectCommand="mySP2" SelectCommandType="StoredProcedure">
<asp:SqlDataSource ID="dsFooter" runat="server" 
    SelectCommand="mySP3" SelectCommandType="StoredProcedure">


<asp:Repeater ID="rptHeader" runat="server" DataSourceID="dsHeader" >
<asp:Repeater ID="rptMain" runat="server" DataSourceID="dsMain" >
<asp:Repeater ID="rptFooter" runat="server" DataSourceID="dsFooter" >

数据源存储过程按照页面加载时所需的顺序执行(即mySP2,mySP1,mySP3)。有什么办法可以强制下单吗? dsMain 存储过程有副作用,会改变其他两个的结果,因此需要先执行。

目前我在绑定到 dsMain 的开头添加了一个空的虚拟中继器,以强制首先对其进行评估,但这涉及到我想避免的额外的数据库往返。

【问题讨论】:

    标签: asp.net data-binding


    【解决方案1】:

    编写一个存储过程(例如,称为“myMasterSP”)以您需要的顺序调用(exec)其他 3 个。您不应依赖控件在 HTML 标记中出现的顺序。拥有一个主存储过程意味着您只需要在 ASP.NET 控件上进行一次调用。

    以下链接讨论了存储过程执行其他存储过程:

    how to call a stored proc from another stored proc

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-18
      • 1970-01-01
      • 1970-01-01
      • 2011-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多