早上好!
我正在使用一个EntityDataSource,并希望使用一个WhereParameter来过滤它,它是存储在会话变量session (“票证”)中的对象的一个属性。这个是可能的吗?
下面是用于存储在会话变量中的票据对象的类
Partial Public Class TICKET
Private _ID As Integer '-- I want to use the property "ID" as the parameter
Private _Category As String
Private _Status As String
Private _Priority As String
...
...
End Class下面是一些标记,但不确定如何将属性"ID“作为参数
<asp:EntityDataSource ID="edsDBase" runat="server" AutoGenerateWhereClause="True"
ConnectionString="name=edsDBContainer"
DefaultContainerName="edsDBContainer" EnableFlattening="False"
EntitySetName="edsTicket" EnableDelete="True" EnableInsert="True"
EnableUpdate="True" EntityTypeFilter="tbICObjectBase">
<WhereParameters>
<asp:SessionParameter SessionField="Ticket.ID (this is what I'd like to do)" Name="TicketID" Type="Int32" />
</WhereParameters>
</asp:EntityDataSource>我还试着通过EntityDataSource的EntityDataSource事件编程地做这件事,但也对此感到困惑。
Protected Sub edsTickets_OnSelecting(sender As Object, e As EntityDataSourceSelectingEventArgs)
Dim eds As EntityDataSource = CType(sender, EntityDataSource)
Dim ticket As V_TICKETS = Session("Ticket")
Dim xparam As New Parameter("ID", DbType.Int32)
xparam.DefaultValue = ticket.ID
eds.WhereParameters.Add(xparam)
End Sub但这带来了一个例外,即我不能将EntityDataSourceView转换为EntityDataSource。有人能帮我解决这个问题吗?谢谢!
发布于 2021-06-08 16:38:57
通过处理来自OnSelecting的EntityDataSource事件,解决了我的问题。
Protected Sub edsTickets_OnSelecting(sender As Object, e As EntityDataSourceSelectingEventArgs)
Dim eds As EntityDataSource = e.DataSource 'As suggested by G3nt_M3caj on Jun 1 at 16:29. Thanks again!
Dim ticket As V_TICKETS = Session("Ticket")
Dim xparam As New Parameter("ID", DbType.Int32)
xparam.DefaultValue = ticket.ID
eds.WhereParameters.Add(xparam)
End Subhttps://stackoverflow.com/questions/67792220
复制相似问题