首现想问一下页面的Eval绑定在后台需要那些操作,那些绑定值不是无中生有吧。
我想在页面用一个dropdownlist控件,当用户选择时候将值传给我写的一个查询方法
public static Work GetWorkerByWorkerId(int workerId)
        {
            Work work = new Work();
            string sql = "select * from workInfo";
            if (workerId.ToString() != "0")
                sql = "select * from workInfo where workerId=" + workerId.ToString();
            using (SqlDataReader dataReader = DBHelper.GetReader(sql))
            {
                while (dataReader.Read())
                {
                   
                    work.WorkId.Id = Convert.ToInt32(dataReader["workerId"]);
                    work.WorkPlace = Convert.ToString(dataReader["workPlace"]);
                    work.WorkTime = Convert.ToString(dataReader["workTime"]);
                    work.EmployerId.Id = Convert.ToInt32(dataReader["employerId"]);
                    ...
                    
                }
            }
            return work;
        }
当用户选择dropdownlist控件的时候获得workId,然后就用上面的方法获得信息。
大家能有什么好办法实现,最好能具体点,我还是新手...

解决方案 »

  1.   

    dropdownlist 的数据源绑定 不需要这样的
    只需要指定 item和value就行了
    不要去循环的添加数据
      

  2.   

    不用这么麻烦的,你可以把你的需要绑定到dropdownlist的数据用datasourse绑进去,往回传值的时候,直接在ID_SelectedIndexChanged事件里边写,使用ID.SelectedValue就可以得到当前绑定的值了,然后在把这个值传入到你需要调用的方法,就可以了
      

  3.   

    建议lz不要使用SqlDataReader,你可以直接使用DataAdapter,然后将读出来的数据直接填充到DataSet中,这样子就可以直接作为DataSource绑定到dropdownlist中了
      

  4.   

    http://www.cnblogs.com/ole520/archive/2009/05/26/1490125.html
      

  5.   

      string sql = "select * from workInfo";
    datatable dt=execute(sql);
    ddl.datasource=dt
    ddl.**field=显示的字段
    ddl.**vlues=id;
      

  6.   

    额,是我写的不够清楚,downdroplist控制我已经有数据了,是想通过
    public static Work GetWorkerByWorkerId(int workerId)
      {
      Work work = new Work();
      string sql = "select * from workInfo";
      if (workerId.ToString() != "0")
      sql = "select * from workInfo where workerId=" + workerId.ToString();
      using (SqlDataReader dataReader = DBHelper.GetReader(sql))
      {
      while (dataReader.Read())
      {
        
      work.WorkId.Id = Convert.ToInt32(dataReader["workerId"]);
      work.WorkPlace = Convert.ToString(dataReader["workPlace"]);
      work.WorkTime = Convert.ToString(dataReader["workTime"]);
      work.EmployerId.Id = Convert.ToInt32(dataReader["employerId"]);
      ...
        
      }
      }
      return work;
      }
    得到work,然后把work写在页面,怎么样实现,我碰到的问题是,如果用控件比如gv控件,但要取downdroplist控件值,也米纳一加载,因为用户没选定dropdownlist的值,所以会报错,而使用其他的,但数据库里的数据不止一行
      

  7.   


    一般来说,使用Eval绑定数据,后台必然需要为这个控件指定数据源DataSource,然后再调用DataBind()方法。这个只需要定义dropdownlist的SelectedIndexChanged事件,并且指定AutoComplete="true",这样你可以在事件后台方法中,调用GetWorkerByWorkerId()的方法了,要取到dropdownlist的选中项很简单,"dropdownlist名.SelectedValue"即可。
      

  8.   


    如果用户没有选定dropdownlist,那么,SelectedValue会取到"",在后台SelectedIndexChange事件中判断,如果取到值为"",就提示用户,如果不为"",就通过调用BLL层的方法,拿到完整的work,然后,绑定到gv的控件。
      

  9.   

    [Quote=引用楼主 yajore 的回复:]
    首现想问一下页面的Eval绑定在后台需要那些操作,那些绑定值不是无中生有吧。
    我想在页面用一个dropdownlist控件,当用户选择时候将值传给我写的一个查询方法
     string sql = "select * from workInfo";
    datetable dt =dbhelper.GetTable(sql);
    if (dt!=null)
    {ddlt.datatextfield = "";
    ddlt.datavalufield ="";
    }