Linqdatasource - كيف يمكنني تحديد صفوف بناء على معرف المستخدم الحالي؟
-
18-09-2019 - |
سؤال
لدي عنصر تحكم عرض الشبكة يعرض البيانات بناء على ما يتم إرجاعه بواسطة 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
من الرمز وراء. إنه اختراق، ولكن يعمل.