2009-11-06 2 views
0

У меня есть элемент управления сеткой, который отображает данные на основе того, что возвращается LinqDataSource. LinqDataSource выбирает данные в зависимости от даты, выбранной в элементе управления датой (используется в предложении where), но мне также нужно, чтобы предложение where основывалось на текущем идентификаторе пользователя, который является идентификатором GUID.LinqDataSource - как выбрать строки на основе текущего UserId?

Как я могу получить LinqDataSource для получения текущего идентификатора пользователя и использовать его в предложении where? Мой код в настоящее время выглядит как-то вроде этого (в .aspx страницы)

Where=UserID == GUID?(@UserID) 

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

Я надеюсь, что это достаточно информации, - пожалуйста, дайте мне знать, если вам нужно больше! :)

Спасибо :)

ответ

0

Если кому-то интересно, я перестал использовать смарт-тег и в конечном итоге писать запрос в случае _Selecting из LinqDataSource. Казалось, это исправить.

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 из hdnUserID с фоновым кодом. Это взлом, но работает.