Типы аргументов не соответствуют QueryExtender - PullRequest
1 голос
/ 03 мая 2011

У меня есть сущность, которую я извлекаю из трех столбцов: «Заголовок» (nvarchar (256)), «Популярность» (int) и «Тип» (int).Затем я пытаюсь использовать QueryExtender в списке радиобутонистов, чтобы позволить конечному пользователю отфильтровать все результаты, кроме определенных, но я продолжаю получать сообщение об ошибке «Типы аргументов не совпадают».Вот актуальный код:

 <asp:QueryExtender ID="QueryExtender1" runat="server" TargetControlID="EntityDataSource1">
    <asp:SearchExpression DataFields="Type" SearchType="StartsWith">
        <asp:ControlParameter ControlID="rblTypes" PropertyName="SelectedValue" />
    </asp:SearchExpression>
 </asp:QueryExtender>

 <asp:RadioButtonList ID="rblTypes" runat="server" AutoPostBack="True" 
     RepeatColumns="5" RepeatDirection="Horizontal">
     <asp:ListItem Value="1">Active Inside</asp:ListItem>
     <asp:ListItem Value="2">Semi-Active Inside</asp:ListItem>
     <asp:ListItem Value="3">Inactive Inside</asp:ListItem>
     <asp:ListItem Value="4">Chair Game</asp:ListItem>
     <asp:ListItem Value="5">Active Outside</asp:ListItem>
     <asp:ListItem Value="6">Semi-Active Outside</asp:ListItem>
     <asp:ListItem Value="7">Inactive Outside</asp:ListItem>
     <asp:ListItem Value="8">Water Game</asp:ListItem>
     <asp:ListItem Value="9">Messy Game</asp:ListItem>
     <asp:ListItem Value="10">Trick</asp:ListItem>
 </asp:RadioButtonList>

Есть предложения?

1 Ответ

3 голосов
/ 03 мая 2011

Просто предположение: SelectedValue - это string. Он не совпадает с Type, который является int. Вы можете попытаться указать DbType явно в ControlParameter:

<asp:ControlParameter ControlID="rblTypes" PropertyName="SelectedValue"
    DbType="Int32" />

Редактировать

asp:SearchExpression, по-видимому, предназначен только для текстового поиска, что означает, что указанные вами поля данных должны иметь тип string, что не относится к столбцу Type. Вместо выражения SearchExpression вы можете попробовать asp:RangeExpression и указать одно и то же значение для минимума и максимума, а именно SelectedValue для RadioButtonList:

<asp:QueryExtender ID="QueryExtender1" runat="server"
  TargetControlID="EntityDataSource1">
  <asp:RangeExpression DataField="Type" MinType="Inclusive" MaxType="Inclusive">
    <asp:ControlParameter ControlID="rblTypes" PropertyName="SelectedValue" />
    <asp:ControlParameter ControlID="rblTypes" PropertyName="SelectedValue" />
  </asp:SearchExpression>
</asp:QueryExtender>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...