1
我有一个带两个dropdownlist控件的网页,每个控件绑定到单独的LinqDataSource对象。其中一个显示类别列表,另一个显示列表文章。类别选择驱动文章列表(至少,这是我的预期行为)。文章列表也根据用户语言偏好进行筛选,存储在会话中并应用于事件处理程序中。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>
这一切工作正常,当页面第一次加载。类别列表包含所有可用的类别值,并且列表中的第一个类别被选中。在文章下拉控件中适当地显示第一类的相应文章。然而,当我改变这个类别(因为我将它设置为AutoPostBack="true"
而发生回发时,文章下拉列表不会被刷新,换句话说,OnSelecting事件在后续回发中没有被触发,这是预期的bahaviour吗?如果是这样,我怎么解决这个得到什么?