Gridview LinqDataSource-如何基于当前用户ID选择行?
我有一个网格视图控件,它根据LinqDataSource返回的内容显示数据。LinqDataSource根据在日期控件中选择的日期(在where子句中使用)选择数据,但我还需要where子句基于作为GUID的当前用户ID 如何获取LinqDataSource以获取当前用户ID并在where子句中使用它?我的代码目前看起来像这样(在.aspx页面中)Gridview LinqDataSource-如何基于当前用户ID选择行?,gridview,guid,where,linqdatasource,userid,Gridview,Guid,Where,Linqdatasource,Userid,我有一个网格视图控件,它根据LinqDataSource返回的内容显示数据。LinqDataSource根据在日期控件中选择的日期(在where子句中使用)选择数据,但我还需要where子句基于作为GUID的当前用户ID 如何获取LinqDataSource以获取当前用户ID并在where子句中使用它?我的代码目前看起来像这样(在.aspx页面中) Where=UserID==GUID?(@UserID) 我希望这是足够的信息-如果您需要更多信息,请告诉我!:) 谢谢:)如果有人感兴趣,我停止
Where=UserID==GUID?(@UserID)
我希望这是足够的信息-如果您需要更多信息,请告诉我!:)
谢谢:)如果有人感兴趣,我停止使用智能标记,并在LinqDataSource的_Selecting事件中编写查询。这似乎解决了问题。当我遇到同样的问题时,我做了什么:
<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" />
然后,我从代码隐藏设置hdnUserID
的值
属性。这是一个黑客,但工作
<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" />