动态下拉值不是基于asp.net中的索引链接

时间:2015-04-14 04:59:45

标签: c# html asp.net .net

我正在使用动态文本框和下拉控件创建一个html表。我正在从db表中获取基于行,列和单元格的一个下拉项目文本。我有一个带有员工列表的gridview。当我点击第一个员工时,数据在下拉列表和文本框中正确填充。但是,当我第二次点击其他员工时,文本框数据会填充而不会下拉。下拉保留旧值,而不是选择实际值。帮助表示赞赏。请检查下面的代码。

    DropDownList ddl = CreateDropdownList(appraisalsecid, titleid, k, l);
    string objvalue = "";

    var obj1 = dsempvalues.Tables[0].AsEnumerable().Where(x => x.Field<int>("SectionId") == appraisalsecid && (x.Field<int>("TitleId") == titleid) && (x.Field<int>("RowId") == k && (x.Field<int>("CellId") == l)));

    foreach (var dr in obj1)
        objvalue = dr["appraisalvalue"].ToString();

    if (!string.IsNullOrEmpty(objvalue))
    {
        if (ddl.Items.Count > 0)
        {
            if (ddl.Items.Contains(ddl.Items.FindByText(objvalue)))
            {

                ddl.SelectedIndex = ddl.Items.IndexOf(ddl.Items.FindByText(objvalue));
            }
        }
    }

 if (appraislsubmit)
  ddl.Enabled = false;// this is make probledm
      tc.Controls.Add(ddl);
       tc.Width = "100";
        tr.Cells.Add(tc);
        allddl.Add(ddl.ID);
public DropDownList CreateDropdownList(int i, int j, int k, int l)
{
    DropDownList ddl = new DropDownList();
    try
    {

        ddl.ID = "ddl" + "_" + i.ToString() + "_" + j.ToString() + "_" + k.ToString() + "_" + l.ToString();
        ddl.CssClass = "select2-chosen";
        ddl.ViewStateMode = ViewStateMode.Enabled;
        DataSet ds = new DataSet();
        ds = Session["DSDll"] as DataSet;
        ddl.DataSource = ds;
        ddl.DataTextField = "Name";
        ddl.DataValueField = "ID";
        ddl.DataBind();
        ddl.Items.Insert(0, new ListItem("---select----", "0"));
        return ddl;
    }
    catch (Exception ex)
    {
    }
    return ddl;
}

我发现了一些问题。但我不知道为什么会发生这种情况。如果ddl禁用,则下拉不清除。如果能够很好地运作它。

1 个答案:

答案 0 :(得分:1)

如果要禁用任何下拉列表,则只需要将所需的值绑定到它。

另一种方法是,您可以绑定整个列表,然后在要禁用它时删除其他列表。