Gridview LinqDataSource-如何基于当前用户ID选择行?

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) 我希望这是足够的信息-如果您需要更多信息,请告诉我!:) 谢谢:)如果有人感兴趣,我停止

我有一个网格视图控件,它根据LinqDataSource返回的内容显示数据。LinqDataSource根据在日期控件中选择的日期(在where子句中使用)选择数据,但我还需要where子句基于作为GUID的当前用户ID

如何获取LinqDataSource以获取当前用户ID并在where子句中使用它?我的代码目前看起来像这样(在.aspx页面中)

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" />