开发者

LinqDataSource - how do I select rows based on the current UserId?

I have a Grid View control that displays data based on what is returned by the LinqDataSource. The LinqDataSource selects data depending on the date chosen in a date control (used in the where clause), but I a开发者_如何学JAVAlso need the where clause to be based on the current userID which is a GUID.

How can I get the LinqDataSource to obtain the Current User ID and use it in the where clause? My code currently looks like something like this (in the .aspx page)

Where=UserID == GUID?(@UserID)

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

I hope that's enough information - please let me know if you need more! :)

Thanks :)


If anyone is interested, I stopped using the smart tag and ended up writing the query in the _Selecting event of the LinqDataSource. That seemed to fix it.


What I did when I had the same problem:

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

Then I set the Value attribute of hdnUserID from code-behind. It's a hack, but works.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜