1

詳細ビューの挿入項目テンプレート ビュー内にドロップ ダウン リスト(非常に長く、100 項目以上) があります。このリストをフィルタリングできるように、テキスト ボックスとボタン (検索機能) を追加したいのですが、次のエラーが発生します。

Eval()、XPath()、および Bind() などのデータバインディング メソッドは、データバインドされたコントロールのコンテキストでのみ使用できます。

2 つのエンティティ データソースを作成しました。1 つは where 句を使用し、もう 1 つは使用しません。検索を実行すると、コード ビハインド (ボタン クリック イベント) がデータソースを where 句とパラメーターを持つデータソースに切り替えますが、上記のエラーが発生します。これを行う方法に関するアドバイスはありますか?

Dim aa As DropDownList = DetailsView1.FindControl("DropDownList1")
 aa.DataSourceID = ""
 aa.DataSource = EmpPersonalInfoLOV1   
 aa.DataBind()

編集済みaa.DataSource を文字列から EmpPersonalInfoLOV1 (データソースの名前) に変更します

編集#2 ユーザーから要求された詳細情報..

データソース # 1 コード

<asp:EntityDataSource ID="EmpPersonalInfoLOV" runat="server" 
                    ConnectionString="name=sspEntities" DefaultContainerName="sspEntities" 
                    EnableFlattening="False" EntitySetName="Employee_Personal_Info" 
                    EntityTypeFilter="" 
                    Select="it.[Emp_id], it.[Employee_No_FastPay], it.[Surname] + ' '+ it.[Firstname] As FullName" 
                    Where="">
                </asp:EntityDataSource> 

データソース # 2 コード

<asp:EntityDataSource ID="EmpPersonalInfoLOV1" runat="server" 
                    ConnectionString="name=sspEntities" DefaultContainerName="sspEntities" 
                    EnableFlattening="False" EntitySetName="Employee_Personal_Info" 
                    Select="it.[Emp_id], it.[Employee_No_FastPay], it.[Surname] + ' '+ it.[Firstname] As FullName" 
                    Where="it.Surname like '%' + @Name + '%'">
                    <WhereParameters>
                        <asp:ControlParameter ControlID="TxtBx1" DbType="String" 
                            DefaultValue="&quot;&quot;" Name="Name"  PropertyName="SelectedValue" />
                    </WhereParameters>
                </asp:EntityDataSource>
4

1 に答える 1