2010-09-20 3 views
1

У меня есть веб-страница с двумя элементами управления выпадающим списком, каждая из которых связана с отдельными объектами LinqDataSource. Один из них отображает список Категории и другие отображает список Статьи. Выбор категории включает список статей (по крайней мере, это мое намеренное поведение). Список статей также фильтруется на основе предпочтений пользователя, сохраненного в сеансе, и применяется в обработчике событий ArticleLinqDataSource_Selecting.LinqDataSource событие «OnSelecting» не срабатывает при обратном обратном направлении

<asp:Label runat="server" Text="Category Code:" AssociatedControlID="CategoryDropDownList" /> 
<asp:DropDownList runat="server" ID="CategoryDropDownList" DataSourceID="CategoryLinqDataSource" DataValueField="CategoryID" DataTextField="CategoryCode" AutoPostBack="true" /> 
... 
<asp:Label runat="server" Text="Article Code:" AssociatedControlID="ArticleCodeDropDown" /> 
<asp:DropDownList runat="server" ID="ArticleCodeDropDown" DataSourceID="ArticleLinqDataSource" DataValueField="ArticleID" DataTextField="ArticleCode" OnDataBound="ArticleCodeDropDown_DataBound" /> 
... 
<asp:LinqDataSource runat="server" ID="CategoryLinqDataSource" 
    ContextTypeName="Article.Data.ArticleDataContext" 
    TableName="Categories" Select="new (CategoryID, CategoryCode)"> 
</asp:LinqDataSource> 
... 
<asp:LinqDataSource runat="server" ID="ArticleLinqDataSource" 
    ContextTypeName="Arcicle.Data.ArticleDataContext" 
    TableName="Articles" OrderBy="ArticleCode" 
    Select="new (ArticleID, ArticleCode)" 
    OnSelecting="ArticleLinqDataSource_Selecting"> 
</asp:LinqDataSource> 

Это все работает нормально, когда страница загружается первой. Список категорий содержит все доступные значения категории, и выбирается первая категория в списке. Соответствующие статьи для первой категории отображаются соответствующим образом в раскрывающемся меню статьи. Однако, когда я меняю категорию (post-back происходит, потому что у меня она установлена ​​в AutoPostBack="true", раскрывающийся список статьи не обновляется. Другими словами, событие OnSelecting не запускается после последующих обратных передач. Является ли это ожидаемым бахавиром? Если это так, как это обойти?

ответ

1

Вам нужно позвонить DataBind на DropDownList в случае SelectedIndexChanged в CategoryDropDownList в. это не происходит само по себе.

например

Protected Sub CategoryDropDownList_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles CategoryDropDownList.SelectedIndexChanged 
     ArticleCodeDropDown.DataBind() 
End Sub 
Смежные вопросы