将LINQDataSource连接到内存中集合(通用列表)

时间:2013-04-02 00:08:36

标签: asp.net vb.net linq

所以我有一个asp.net应用程序,我正在尝试使用升级。我想要实现的是使用一个Dropdownlist中选择的值来确定第二个下拉列表中显示的值。在这种程度上,我创建了两个DDL并将它们绑定到标记中的LINQDataSource对象。我想我要做的是将第二个LinqDatasource绑定到我在表单上创建的List(of tablename)列表Load,这样我在内存中有集合并且可以在客户端运行LINQ,所以我动态确定返回集合数据源,因此也就是下拉列表中的值。

我知道只要列表是属性,就可以将LinqDataSource指向列表。所以我尝试了下面这个但是得到一个错误,说找不到我的课。

<asp:DropDownList ID="ddlTitle" runat="server" DataTextField="Title" DataValueField="Title"
        DataSourceID="ViolationTitles" Width="203px" >
    </asp:DropDownList>

        <asp:DropDownList ID="ddlChapters" runat="server" 
        DataTextField="FullChapterName" DataValueField="Chapter_Number"
        DataSourceID="ViolationChapters" Width="203px">
    </asp:DropDownList>

    <asp:LinqDataSource ID="ViolationTitles" runat="server" 
        ContextTypeName="ARS_LINQ_Connections.ARSDataContext" EntityTypeName="" Select="new (key as Title, it as Violation_Title_Chapters)" 
        TableName="Violation_Title_Chapters" GroupBy="Title">
    </asp:LinqDataSource>

    <asp:LinqDataSource ID="ViolationChapters" runat="server"
    ContextTypeName="Test"  
        EntityTypeName="" 
        TableName="rsViolations" 
        Select='new (Title, Chapter_Number, Chapter_Name, String.Concat(Chapter_Number + ". " + Chapter_Name) as FullChapterName)'>
    </asp:LinqDataSource>

背后的代码

Public Class Test
    Inherits System.Web.UI.Page
    Public Property rsViolations As New List(Of Violation_Code)

    Dim arslinq As New ARS_LINQ_Connections.ARSDataContext
    Dim rsTitles As New List(Of Violation_Title_Chapter)

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        rsViolations = (From v In arslinq.Violation_Codes).ToList
        rsTitles = (From t In arslinq.Violation_Title_Chapters).ToList



    End Sub
End Class

0 个答案:

没有答案