2
我有一個帶有LinqDataSource的ListView設置和一個觸發搜索功能的按鈕。爲了避免在page_load上顯示數據,我在搜索按鈕的Click事件中設置了ListView的DataSourceID,綁定它並在LinqDataSource的Selecting事件中設置結果數據。它按照我的預期工作,但每次單擊搜索按鈕時都不會在按鈕Click事件中設置DataSourceId。我怎樣才能以更好,更清晰的方式做到這一點?在ASP.NET ListView和LinqDataSource上,點擊搜索按鈕時顯示數據
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;
}
感謝您的回答,womp。 我也考慮過這個問題,但這樣做的問題是當它綁定時,它仍然在頁面加載時從數據庫檢索數據而沒有任何搜索條件。我只是想知道是否有任何方法將數據源綁定到列表視圖,並且直到專門告訴它才能檢索數據。 – 2010-06-19 07:29:54