C# 单击按钮时重新填充下拉列表

C# 单击按钮时重新填充下拉列表,c#,asp.net,C#,Asp.net,我有一个数据绑定下拉控件(因此它由设计器中指定的查询填充),我希望在单击按钮时重新填充此查询。下拉列表定义如下: <asp:DropDownList ID="JobRelPhase_DropDown" runat="server" DataSourceID="SqlDataSourceMYDATASOURCE" DataTextField="JobRelPhase" DataValueField="id" OnSelectedIndexChanged="my_Dro

我有一个数据绑定下拉控件(因此它由设计器中指定的查询填充),我希望在单击按钮时重新填充此查询。下拉列表定义如下:

<asp:DropDownList ID="JobRelPhase_DropDown" runat="server" 
     DataSourceID="SqlDataSourceMYDATASOURCE" DataTextField="JobRelPhase" 
     DataValueField="id" OnSelectedIndexChanged="my_DropDown_SelectedIndexChanged" 
     AutoPostBack="True" style="text-align: center" 
     Width="684px" Font-Bold="True" AppendDataBoundItems="true" BackColor="White" 
     ForeColor="Black">
         <asp:ListItem Value="SELECT AN ITEM" disabled="disabled"></asp:ListItem>
</asp:DropDownList>`

要在设置了DropDownID后重新填充下拉列表,只需在其上调用
DataBind()
,它就会被恢复。您必须在按钮单击处理程序中调用它,如中所示:

protected void Button_Click(..)
{
    //Since you have AppendDataBoundItems="true", have to clear list to reset
    JobRelPhase_DropDown.Items.Clear();
    JobRelPhase_DropDown.DataBind();
}

要在设置了DropDownID后重新填充下拉列表,只需在其上调用
DataBind()
,它就会被恢复。您必须在按钮单击处理程序中调用它,如中所示:

protected void Button_Click(..)
{
    //Since you have AppendDataBoundItems="true", have to clear list to reset
    JobRelPhase_DropDown.Items.Clear();
    JobRelPhase_DropDown.DataBind();
}

您应该首先从下拉列表中清除旧值,然后重新绑定

JobRelPhase_DropDown.Items.Clear();
即:


您应该首先从下拉列表中清除旧值,然后重新绑定

JobRelPhase_DropDown.Items.Clear();
即:


因此,我正在运行的函数应该通过更改数据库中的字段(查询检查为true的字段)将该项从列表中删除,因此在调用DataBind()时,该项不应该再位于列表中,因为它已更改为false。但是,当我运行DataBind()时,这些项仍然在列表中。我已经添加了按钮的click事件处理程序代码。可能是因为我在DropDownList的开头添加了我自己的元素,正如您在我的原始代码中所看到的那样?您不需要先清除这些项目吗?我认为它们是附加的,而不是替换原始项。因为您有
AppendDataBoundItems=“true”
,所以必须清除。否则,如果这是False,那么您就不必担心这个问题。因此,我正在运行的函数应该通过更改数据库中的字段(查询检查为true的字段)从列表中删除该项,因此在调用DataBind()时,该项不应再位于列表中,因为它已更改为False。但是,当我运行DataBind()时,这些项仍然在列表中。我已经添加了按钮的click事件处理程序代码。可能是因为我在DropDownList的开头添加了我自己的元素,正如您在我的原始代码中所看到的那样?您不需要先清除这些项目吗?我认为它们是附加的,而不是替换原始项。因为您有
AppendDataBoundItems=“true”
,所以必须清除。否则,如果这是错误的,那么你就不必担心了。这将消除我的默认选择项-有没有办法通过我的代码手动将其添加回?很好,很简单。谢谢这将消除我的默认选择项-有没有办法通过我的代码手动将其添加回?很好,很简单。谢谢