Linqdatasource - كيف يمكنني تحديد صفوف بناء على معرف المستخدم الحالي؟

StackOverflow https://stackoverflow.com/questions/1690850

سؤال

لدي عنصر تحكم عرض الشبكة يعرض البيانات بناء على ما يتم إرجاعه بواسطة LinQDataSource. يختار LinQDatAsource البيانات اعتمادا على التاريخ المختار في عنصر تحكم تاريخ (المستخدم في جملة WHERE)، ولكني أحتاج أيضا إلى إنشاء جملة WHERE على المستخدم الحالي الذي هو GUID.

كيف يمكنني الحصول على LinQDataSource للحصول على معرف المستخدم الحالي واستخدامه في جملة WHERE؟ يبدو وكأنك حاليا شيء مثل هذا (في صفحة .aspx)

Where=UserID == GUID?(@UserID)

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

آمل أن تكون هذه معلومات كافية - واسمحوا لي أن أعرف إذا كنت بحاجة إلى المزيد! :)

شكرا :)

هل كانت مفيدة؟

المحلول

إذا كان أي شخص مهتما، فقد توقفت عن استخدام العلامة الذكية وانتهى بك في كتابة الاستعلام في حدث _Selecting في LinQDataSource. يبدو أن إصلاحه.

نصائح أخرى

ما فعلته عندما كان لدي نفس المشكلة:

<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 من الرمز وراء. إنه اختراق، ولكن يعمل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top