Asp.net 绑定下拉列表更改为列表中的第一项

Asp.net 绑定下拉列表更改为列表中的第一项,asp.net,drop-down-menu,Asp.net,Drop Down Menu,我在一页上有两个下拉列表。第一个列表列出项目,第二个列表列出用户 userlist由一个对象数据源填充,该对象数据源为所选项目提取用户列表 每当项目列表选择发生更改时,第二个ddl Userlist始终恢复为列表中的第一个人,而不是在选择新项目之前选择的人 我希望能够选择一个新项目,而不会更改用户列表中选定的人员。在进行数据绑定之前,您需要存储当前选定的用户Id。一种方法是在项目ddl上处理SelectedIndexChanged,这样您就可以在用户ddl中获取所选项的用户id,然后手动进行绑定

我在一页上有两个下拉列表。第一个列表列出项目,第二个列表列出用户

userlist由一个对象数据源填充,该对象数据源为所选项目提取用户列表

每当项目列表选择发生更改时,第二个ddl Userlist始终恢复为列表中的第一个人,而不是在选择新项目之前选择的人


我希望能够选择一个新项目,而不会更改用户列表中选定的人员。

在进行数据绑定之前,您需要存储当前选定的用户Id。一种方法是在项目ddl上处理SelectedIndexChanged,这样您就可以在用户ddl中获取所选项的用户id,然后手动进行绑定。绑定完成后,您可以尝试将ddl的SelectedValue设置为存储的用户Id

编辑:添加了一个示例:

在您的aspx中:

<asp:DropDownList ID="projectddl" runat="server" AutoPostBack="true" OnSelectedIndexChanged="projectddl_SelectedIndexChanged">
    <asp:ListItem Text="Project 1" Value="1" />
    <asp:ListItem Text="Project 2" Value="2" />
    <asp:ListItem Text="Project 3" Value="3" />
</asp:DropDownList>

    <asp:DropDownList ID="usersddl" runat="server">
    </asp:DropDownList>

那么,我应该使用哪个事件来获取所选用户?我用哪一个来设置所选的用户?我有点困惑。ProjectList具有objectdatasource控件。是否每次更改所选项目时都会重新绑定?不确定。我不倾向于使用ObjectDataSource。我更喜欢在页面加载中设置.DataSource,然后调用DataBind(在您的案例中,在项目列表中)。因此,如果这是包装在一个新的!然后它将只绑定一次。
protected void projectddl_SelectedIndexChanged(object sender, EventArgs e)
{
    string currentlySelectedUserId = usersddl.SelectedValue;

    // Do your user databinding here based on project selected

    usersddl.SelectedValue = currentlySelectedUserId;
}