LinqDataSource 및 검색 기능을 트리거하는 버튼이있는 ListView 설정이 있습니다. page_load에 데이터가 표시되지 않게하려면 검색 버튼의 Click 이벤트에 ListView의 DataSourceID를 설정하고 바인딩 한 다음 결과 데이터를 LinqDataSource의 Selecting 이벤트에 설정합니다. 예상대로 작동하지만 검색 버튼을 클릭 할 때마다 버튼 Click 이벤트에서 DataSourceId를 설정하는 것이 좋지 않습니다. 어떻게 더 명확하고 명확하게이 작업을 수행 할 수 있습니까?LinqDataSource가있는 ASP.NET ListView에서 검색 버튼을 클릭 할 때 데이터 표시
ASPX 코드 :
<asp:LinqDataSource ID="LinqDataSource1" runat="server"
ContextTypeName="WebApplication1.DataClasses1DataContext" EntityTypeName=""
TableName="Persons" onselecting="LinqDataSource1_Selecting">
</asp:LinqDataSource>
<asp:ListView ID="ListView1" runat="server" >...</asp:ListView>
<asp:Button ID="Search" Text="Search" runat="server" Click="Search_Clicked"/>
ASPX.CS 코드 : 만약 당신이 그것을 좋아하지 않는 경우
protected void Search_Clicked(object sender, EventArgs e)
{
ListView1.DataSourceID = LinqDataSource1.ID;
ListView1.DataBind();
}
protected void LinqDataSource1_Selecting(object sender, LinqDataSourceSelectEventArgs e)
{
//Search Criteria from CheckBoxList and TextBox applied here.
DataClasses1DataContext data = new DataClasses1DataContext();
var query = from result in data.Persons
where result.ID > 2
select result;
e.Result = query;
}
답변 해 주셔서 감사합니다. 나는 그것에 대해서도 생각했지만 문제는 바인딩 할 때 검색 기준없이 페이지로드시 DB에서 데이터를 검색한다는 것입니다. 데이터 소스를 listview에 바인드하고 데이터를 검색하지 않는 방법이 있는지 궁금합니다. –