2017-02-23 32 views
1
/*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(); 
     } 
    } 

Средний уровень:Binding DropDownList с общим списком в 3-уровневой архитектуры

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(); 

    } 

я пытаюсь связать департаменты DROPDOWNLIST с использованием 3-уровневую архитектуру. , но этот код не работает, он показывает middletier.dropdownbind в текстовом поле.

+0

У вас появился шанс посмотреть на мой ответ? Это устранило вашу проблему? –

ответ

0

Вы должны исправить DataTextFieldDataValueField & свойства, как это: -

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

Вы с указанием свойства имени, а вам нужно указать имя свойства в качестве string.