2014-01-23 47 views
0

有兩個linqdatasource,一個綁定到下拉列表,另一個綁定到gridview。 DropDownList是控制參數。 我的代碼:如何在存在控制參數的情況下搜索整個linqdatasource

<asp:LinqDataSource ID="LinqDataSource1" runat="server" 
    ContextTypeName="TestPortalDataContext" EntityTypeName="" EnableUpdate="true" EnableDelete="True" 
    EnableInsert="True" TableName="AllSuitesWithFeatureNames" 
    Where="[email protected]" OrderBy="SuiteID desc" OnSelecting="LinqDataSource1_Selecting"> 
    <WhereParameters> 
    <asp:QueryStringParameter DefaultValue="" Name="SuiteID" QueryStringField="SuiteID" /> 
     <asp:ControlParameter ControlID="DropDownList1" DefaultValue="1" 
      Name="FeatureName" PropertyName="SelectedValue" Type="string" /> 
    </WhereParameters> 
</asp:LinqDataSource> 

<asp:LinqDataSource ID="LinqDataSource2" runat="server" 
    ContextTypeName="TestPortalDataContext" EntityTypeName="" 
    TableName="AllFeatures" OrderBy="FeatureName"> 
</asp:LinqDataSource> 

<asp:DropDownList ID="DropDownList1" runat="server" CssClass="DDDropDown" 
    DataSourceID="LinqDataSource2" DataTextField="FeatureName" DataValueField="FeatureName" AutoPostBack="True" > 
</asp:DropDownList> 

由於在LinqDataSource1的控制參數,所以每次我必須選擇在下拉列表右側FeatureName進行搜索。我知道在sql中很容易在所有表格中搜索。但是我怎樣才能在所有的LinqDataSource1 linq方式中搜索?

回答

0

試試這個。假設

<asp:DropDownList ID="DropDownList1" runat="server" CssClass="DDDropDown" 
DataSourceID="LinqDataSource2" DataTextField="FeatureName" DataValueField="FeatureName" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" > 

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) 
    { 

     LinqDataSource1.Where = "FeatureName==" + DropDownList1.SelectedValue; 
     LinqDataSource1.DataBind(); 
     gridView.DataSource = LinqDataSource1; 

     gridView.DataBind(); 
    } 
+0

做同樣的事情 - DropDownList1_SelectedIndexChanged,實際上,DropDownList1_SelectedIndexChanged生成一個錯誤:'/'應用程序中的服務器錯誤。 AllSuitesWithFeatureName類型中不存在屬性或字段'OS' – Jerry

相關問題