0
我想創建一個主/詳細視圖。我的DetailsView
正常工作,在其自己的頁面上,我的GridView
顯示我的EquipmentDataSource
也正常工作。我可以用FilterParamaters
過濾GridView
:ControlParameter正在返回以前的值?
<FilterParameters>
<%-- ControlParameter.Name will String.Formatted with the control's value --%>
<asp:ControlParameter Type="String" Name='eEquipment.Contains("{0}")' ControlID="txtNumber" PropertyName="Text" />
</FilterParameters>
(我理解的動態LINQ表達式作爲控制的名字是糟糕的設計)
問題進入地方,當我試圖篩選基於的關鍵DetailsView
顯示的項目。如果我切換到PO#爲123的項目,那麼456,ControlParameter
將評估爲123.我認爲它可能是從ViewState獲取值,而不是控件當前具有的值,但我不知道爲什麼。
代碼:
<cc:ProcurementDataSource ID="dsProcurements" runat="server" />
<asp:DetailsView ID="dtvProcurements" runat="server" AllowPaging="True" DataSourceID="dsProcurements" />
<cc:EquipmentDataSource ID="dsEquipment" runat="server">
<FilterParameters>
<asp:ControlParameter Type="String" Name='ePO == "{0}"' ControlID="dtvProcurements" PropertyName="DataItem.epClientPO" />
</FilterParameters>
</cc:EquipmentDataSource>
<asp:GridView ID="GridView1" runat="server" DataSourceID="dsEquipment" />
,我號召Page_Load
Page.DataBind()
。我嘗試在每個控件上手動調用DataBind()
以防它發生奇怪的順序,但這似乎沒有幫助。