我 在 一 个 gridview 列 中 有 下拉 列表 , 一旦 我 从 下拉 列表 中 选择 值 , 它 应该 从 其他 下拉 列表 中 删除 , 即 上 一 个 和 下 一 个 下拉 列表 。 由于 此 值 已经 分配 , 因此 它 不 应该 可 用于 其他 下拉 列表 ( gridview 中 的 上 一 个 和 下 一 个 下拉 列表 ) 。
对于 gridview 中 的 传入 下拉 列表 , 我 使用 下面 的 代码 实现 。
List<int> roles = null;
int index = e.Row.RowIndex;
roles = new List<int>();
for (int i=1;i<=index;i++)
{
GridViewRow prevRow = grdUserProvision.Rows[e.Row.RowIndex - i];
ddlSelectedRole = prevRow.FindControl("ddlRole") as DropDownList;
roles.Add(Convert.ToInt32( ddlSelectedRole.SelectedValue));
}
foreach (var fileterRoles in roles)
{
_roles.RemoveAll(x=>x.RoleID == fileterRoles);
}
ControlUtilities.BindListWithSelect(ddlRole, _roles);
中 的 每 一 个
但 如何 删除 项目 从 以前 的 下拉 内 gridview ?
1条答案
按热度按时间7ajki6be1#
多可爱的问题啊!
因此,在我们编写代码之前,让我们设计一种方法来解决这个问题。
因此,其逻辑是:
获取网格数据列表(暂时不归档gv)
获取选项的完整下拉数据列表(已删除现有选项)
对于每一行,
下拉列表选项=“当前选择”+可用唐斯。
因此,以上是我们需要的解决方案和逻辑。
因此,让我们假设我们有一个人员列表,每个用户只能从酒店列表中选择一家酒店(我只是碰巧手头有这些数据--但对于任何此类数据,问题都是一样的。(一个选择网格,每行都有一些选择的下拉列表)。
所以,这段代码是有效的:
以上加载GV和我们的数据。
并且我们需要代码来加载每行的组合框(下拉列表)。
代码如下:
所以,我们现在看到/明白了这一点。
请注意,当我为最后4行选择值时,这些选项将从组合框中消失。
并自动保存(自动回发),因此我们保存回数据库代码如下: