Как отфильтровать DropDownList из другого DropDownList (способ SPDataSource + ControlParameter) - PullRequest
1 голос
/ 28 июня 2011

Я пытаюсь соединить два DropDownList ( ddlCountry и ddlCity ) вместе.Я хочу, чтобы когда пользователь изменял страну, ddlCity обновлялся соответственно.

Для этого я создал два списка:

· * Страна (ID, название)

· Город (ID, название,Страна) [Страна - это поле поиска]

Затем я создал страницу ASPX с 2 DropDownList, подключенными к стране и городу через 2 SPDataSource (dsCountry и dsCity).

Когда я загружаю свою страницу, список DropDownList города заполняется соответственно списку DropDownList страны, но когда я меняю страну, ничего не происходит, и ddlCity всегда показывает ноль Это мой код:

<SharePoint:SPDataSource runat="server" DataSourceMode="List" UseInternalName="true"    selectcommand="<Query><OrderBy><FieldRef Name='Title' /></OrderBy></Query>" id="dsCountry">
    <SelectParameters>
        <asp:Parameter Name="ListName" DefaultValue="Country"/> 
    </SelectParameters>
</SharePoint:SPDataSource>

<p>Country: 
<asp:DropDownList runat="server" id="ddlCountry" DataValueField="Title" DataTextField="Title" DataSourceID="dsCountry" AutoPostBack="True" />
</p>

<SharePoint:SPDataSource runat="server" DataSourceMode="List" UseInternalName="true"    selectcommand="<Query><Where><Eq><FieldRef Name="Country" /><Value Type="Lookup">{country}</Value></Eq></Where></Query>"    id="dsCity">
    <SelectParameters>
        <asp:parameter DefaultValue="City" Name="ListName"></asp:parameter>
        <asp:controlparameter name="country" controlid="ddlCountry" propertyname="SelectedValue"/>
    </SelectParameters>
</SharePoint:SPDataSource>
<p>City:  
<asp:DropDownList runat="server" id="ddlCity" DataValueField="Title" DataTextField="Title" DataSourceID="dsCity" />
</p>

Обратите внимание:

· В ddlCountry AutoPostBack = True

· В dsCity в запросе CAML есть параметр с именем «country», подключенный к ddlCountry через ControlParameter

Я не понимаю, почему моя фильтрация не работает, когда я меняю страну ... Я вижу, что страница перезагружается, но ничего не происходит ... есть предложения?

Ответы [ 2 ]

0 голосов
/ 30 апреля 2012

Я понимаю, что это серьезная некромантия потоков, но если вам все еще интересно, или кто-то еще найдет это через Google ...

Попробуйте установить атрибут EnableViewState второго (отфильтрованного) раскрывающегося списка на false. Это заставит элемент управления получать новый набор данных (с новым фильтром) из SPDataSource, вместо того, чтобы получать его предыдущий набор из предыдущей записи из состояния просмотра.

Посмотрите эту страницу для этого конкретного примера и эту страницу для более общего обзора состояния просмотра и его действия.

0 голосов
/ 19 августа 2011

Не должна ли переменная быть:

{$country}

Хотите знать, нашли ли вы когда-нибудь решение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...