我有一个网格视图控件,它根据LinqDataSource返回的内容显示数据。 LinqDataSource根据日期控件中选择的日期(在where子句中使用)选择数据,但我还需要基于当前用户ID的where子句,这是一个GUID。
如何让LinqDataSource获取当前用户ID并在where子句中使用它?我的代码目前看起来像这样(在.aspx页面中)
Where=UserID == GUID?(@UserID)
<asp:Parameter DbType="Guid" Name="UserId" />
我希望有足够的信息 - 如果您需要更多信息,请告诉我们! :)
谢谢:)
答案 0 :(得分:0)
如果有人感兴趣,我停止使用智能标记,最后在LinqDataSource的_Selecting事件中编写查询。这似乎解决了这个问题。
答案 1 :(得分:0)
当我遇到同样的问题时我做了什么:
<asp:LinqDataSource ... Where="UserID == Convert.ToInt32(@UserID)">
<WhereParameters>
<asp:ControlParameter Name="UserID" ControlID="hdnUserID"
Type="Int32" PropertyName="Value" />
</WhereParameters>
</asp:LinqDataSource>
<asp:HiddenField runat="server" ID="hdnUserID" Visible="false" />
然后我从代码隐藏中设置Value
的{{1}}属性。这是一个黑客,但有效。