문제

LinqDatasource가 반환 한 내용을 기반으로 데이터를 표시하는 그리드보기 컨트롤이 있습니다. LinqDataSource는 날짜 제어에서 선택한 날짜 (WHERE 절에서 사용)에 따라 데이터를 선택하지만, 현재 userID를 기반으로하는 where 절이 필요합니다.

LinqDatasource가 현재 사용자 ID를 얻고 WHERE 절에서 사용하도록하려면 어떻게해야합니까? 내 코드는 현재 이와 같은 것 같습니다 (.aspx 페이지에서)

Where=UserID == GUID?(@UserID)

<asp:Parameter DbType="Guid" Name="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" />

그런 다음 설정했습니다 Value 속성 hdnUserID Code-Behind에서. 해킹이지만 작동합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top