将下拉列表与3层体系结构中的通用列表绑定

时间:2017-02-23 09:20:13

标签: c# asp.net webforms

/*data access layer */
public DataSet getdata(string procedurename, SqlParameter[] param)
 {
     try
     {
          SqlCommand command;
          command = new SqlCommand(procedurename, connection);
          command.CommandType = CommandType.StoredProcedure;
          SqlDataAdapter adapter = new SqlDataAdapter(command);
          DataSet set = new DataSet();
          if (param != null)
          {
             for (int i = 0; i < param.Length; i++)
             {
                 command.Parameters.Add(param[i]);
             }
          }
           adapter.Fill(set);
           return set;
       }
       catch (Exception ex)
       {
           throw ex;
       }
       finally
       {
           closeConnection();
       }
    }

中间层:

public class dropdownbind
    {
        private string _itemName;
        private int _itemvalue;

        public int Itemvalue
        {
            get { return _itemvalue; }
            set { _itemvalue = value; }
        }

        public string ItemName
        {
            get { return _itemName; }
            set { _itemName = value; }
        }

        public List<dropdownbind> getDepartment()
        {
            DBlist obj = new DBlist();
            DataSet ds = obj.getdata("str_getdepartment",null);
            List<dropdownbind> departments = new List<dropdownbind>();
            foreach (DataRow orow in ds.Tables[0].Rows)
            {
                dropdownbind dlist = new dropdownbind();
                dlist.ItemName = orow["deparment_name"].ToString();
                dlist.Itemvalue = int.Parse(orow["id"].ToString());
                departments.Add(dlist);
            }
            return departments;
        }
    }

UI: -

 protected void BindDdlList()
    {
        dropdownbind dlist = new dropdownbind();
        List<dropdownbind> departments = dlist.getDepartment();
        ddlEmpDepatment.DataSource = departments;
        ddlEmpDepatment.DataTextField = dlist.ItemName;
        ddlEmpDepatment.DataValueField = dlist.Itemvalue.ToString();
        ddlEmpDepatment.DataBind();

    }

我正在尝试使用3层架构将部门绑定到下拉列表。 但是这段代码不起作用,它在文本字段中显示了middletier.dropdownbind。

1 个答案:

答案 0 :(得分:0)

您需要更正DataTextField&amp; DataValueField这样的属性: -

ddlEmpDepatment.DataValueField = "Itemvalue";
ddlEmpDepatment.DataTextField = "ItemName";

您正在指定属性名称,而无需将属性名称指定为string