У меня есть веб-страница с двумя элементами управления выпадающим списком, каждая из которых связана с отдельными объектами 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 не запускается после последующих обратных передач. Является ли это ожидаемым бахавиром? Если это так, как это обойти?