数据更改时,SqlDataSource未从数据库中重新选择数据

本文关键字:数据 新选择 选择 SqlDataSource 数据库 | 更新日期: 2023-09-27 18:27:19

我有一个由SqlDataSource填充的下拉列表,其中包含以下标记:

下拉列表:

<asp:DropDownList ID="SaleIDDropDown" runat="server" CssClass="dropdown" 
    DataSourceID="DropDownDataSource" DataTextField="Title" DataValueField="ID"
    AppendDataBoundItems="true">
</asp:DropDownList>

数据源

<asp:SqlDataSource ID="DropDownDataSource" runat="server" 
    ConnectionString="<%$ ConnectionStrings:SQL-DEV %>" 
    SelectCommand="SELECT [ID], [Title], [userid] FROM [AdSelect]">
</asp:SqlDataSource>

我遇到的问题是,当一些数据通过我正在制作的web界面更改时(例如,我删除了一个项目,或更改了它的标题),Dropdown会填充旧数据,尽管它在数据库中显然已经更改(我使用SQL Server Studio进行了检查)。如果我重新加载页面,然后Dropdown最终被正确填充。

我需要一种方法来"强制"重新蚀刻/选择数据,但到目前为止我的努力都失败了。我试过在代码中执行,但没有生效。

DropDownDataSource.Select(DataSourceSelectArguments.Empty);
DropDownDataSource.DataBind();
SaleIDDropDown.DataBind();

它仍然不会更新下拉列表,即使在运行时也是如此。

如何制作下拉列表及其SqlDataSource并根据命令将其推送到页面?

数据更改时,SqlDataSource未从数据库中重新选择数据

请注意,即使禁用视图状态的解决方案有效,它也远不是最佳的,因为它会在每次回发时从数据库加载数据。

如果这是一个繁忙的网站,你并不真的想要。尝试在SaleIDDropDown.DataBind()上多花点时间;命令这必须刷新数据,但我想你没有在正确的地方或类似的地方这样做…