LinqDataSource - 如何根据当前UserId选择行?

时间:2009-11-06 22:15:42

标签: gridview guid where linqdatasource userid

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

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

Where=UserID == GUID?(@UserID)

<asp:Parameter DbType="Guid" Name="UserId" />

我希望有足够的信息 - 如果您需要更多信息,请告诉我们! :)

谢谢:)

2 个答案:

答案 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}}属性。这是一个黑客,但有效。