所以我有一个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