だから私はアップグレードを使用しようとしているasp.netアプリケーションを持っています。私が達成したいのは、1 つのドロップダウンリストで選択された値を使用して、2 番目のドロップダウンリストに表示される値を決定することです。この範囲で、2 つの DDL を作成し、それらをマークアップで LINQDataSource オブジェクトにバインドしました。私がやろうと思ったのは、2 番目の 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