2014-01-14 40 views
0

我想將它們結合到where子句中。我得到了錯誤 當AutoGenerateWhereClause爲true時,LinqDataSource不支持Where屬性。有可能在whereAutogenerate被使用時結合where子句嗎?

第一個where子句來自apointement表。我想只選擇列IsAvailable = True的行。

另一個來自下拉列表。我想知道如何組合,但如果可行的話。由於

<asp:LinqDataSource ID="LinqDataSource1" runat="server" 
     ContextTypeName="DoctorDataContext" EnableDelete="True" EnableInsert="True" 
     EnableUpdate="True" EntityTypeName="" TableName="Apointement" 
     AutoGenerateWhereClause="True" 
     Where="@IsAvailable = True"> 

     <WhereParameters> 
     <asp:ControlParameter 
      Name="doctorName" 
      ControlID="DropDownList1" 
      PropertyName="SelectedValue" 
      Type="String" /> 
     </WhereParameters> 

</asp:LinqDataSource> 

<div class="center"> 

<asp:Label ID="lbldoctorName" runat="server" Text="Choose a doctor"> 
</asp:Label> 

<div class="value-right"> 
    <asp:DropDownList ID="DropDownList1" runat="server" Width="180px" AutoPostBack="true" 
      OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" > 
      <asp:ListItem Text="doctorA" Value="doctorA" /> 
      <asp:ListItem Text="doctorB" Value="doctorB" /> 
      <asp:ListItem Text="doctorC" Value="doctorC" /> 

    </asp:DropDownList> 

回答

0

添加另一個<asp:ControlParameter<WhereParameters>元素。我沒有及時更新LinqDataSources,因此我不知道語法,但是您需要指定IsAvailable列,其值爲True或可能爲1.

+0

我所做的是刪除AutoGenerateWhereClause =「True」,它唯一的問題是第一次出現下拉列表中的所有選項。字段IsAvailable來自一個表,所以我想如何在 user3127986

0

我所做的是刪除AutoGenerateWhereClause =「真」,它唯一的問題是第一次顯示下拉列表中的所有選項。

<asp:LinqDataSource ID="LinqDataSource1" runat="server" 
    ContextTypeName="DoctorDataContext" EnableDelete="True" EnableInsert="True" 
    EnableUpdate="True" EntityTypeName="" TableName="Apointement" 
    Where="@IsAvailable = True"> 
    <WhereParameters> 
    <asp:ControlParameter 
     Name="doctorName" 
     ControlID="DropDownList1" 
     PropertyName="SelectedValue" 
     Type="String" /> 
    </WhereParameters> 

</asp:LinqDataSource>