((DropDownList)this.m_DlCustomerInfo.FindControl("ddlYiJi")).DataSource = neverCallCategorys;
((DropDownList)this.m_DlCustomerInfo.FindControl("ddlYiJi")).DataTextField = "Category";
((DropDownList)this.m_DlCustomerInfo.FindControl("ddlYiJi")).DataValueField = "Id";
((DropDownList)this.m_DlCustomerInfo.FindControl("ddlYiJi")).DataBind();
DATALIST里下拉框控件绑定数据源,报错。
请问怎么改?

解决方案 »

  1.   

    if (e.Row.RowType == DataControlRowType.DataRow)
            {
                DropDownList ddl= (DropDownList)e.Row.FindControl("DropDownList1");
    }
      

  2.   

            <asp:DataList ID="DataList1" runat="server" 
                onitemdatabound="DataList1_ItemDataBound">
            <HeaderTemplate><table></HeaderTemplate>
            <ItemTemplate>
                <tr>
                <td><%#Eval("ID") %></td>
                <td><%#Eval("Name") %></td>
                <td>
                    <asp:DropDownList ID="DropDownList1" runat="server">
                    </asp:DropDownList>
                </td>
                </tr>
            </ItemTemplate>
            <HeaderTemplate></table></HeaderTemplate>
            </asp:DataList>
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                DataList1.DataSource = getDataTable();
                DataList1.DataBind();
            }
        }
        public DataTable getDataTable()
        {
            string[] name = { "zhang", "san", "li", "si", "wang", "wu", "zhao", "liu", "huang", "qi" };
            DataTable dt = new DataTable();
            dt.Columns.Add("ID", typeof(System.Int32));
            dt.Columns.Add("Name", typeof(System.String));
            for (int i = 0; i < name.Length; i++)
            {
                DataRow row = dt.NewRow();
                row[0] = i + 1;
                row[1] = name[i];
                dt.Rows.Add(row);
            }
            return dt;
        }
        protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                DropDownList dd = e.Item.FindControl("DropDownList1") as DropDownList;
                dd.DataSource = getDataTable();
                dd.DataTextField = "Name";
                dd.DataValueField = "ID";
                dd.DataBind();
            }
        }
      

  3.   

    拿了3楼的数据 写了个
     public void BindDrp(DropDownList ddl)
        { 
            string[] name = { "zhang", "san", "li", "si", "wang", "wu", "zhao", "liu", "huang", "qi" };
            DataTable dt = new DataTable();//存放查出的数据
            dt.Columns.Add("ID", typeof(System.Int32));
            dt.Columns.Add("Name", typeof(System.String));
            for (int i = 0; i < name.Length; i++)
            {
                DataRow row = dt.NewRow();
                row[0] = i + 1;
                row[1] = name[i];
                dt.Rows.Add(row);
            }
            ddl.DataSource=dt;
            ddl.DataTextField = "Name";//自己写需要的
            ddl.DataValueField = "ID";
            ddl.DataBind();
        }
        protected void dlTest_ItemDataBound(object sender, DataListItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                DropDownList ddltest = e.Item.FindControl("drpTest") as DropDownList;
                BindDrp(ddltest);
            }
        }
      

  4.   

    ((TextBox)this.m_DlCustomerInfo.FindControl("txtYiJi")).DataSource = neverCallCategorys;
    ((TextBox)this.m_DlCustomerInfo.FindControl("txtYiJi")).DataTextField = "Category";
    ((TextBox)this.m_DlCustomerInfo.FindControl("txtYiJi")).DataValueField = "Id";
    ((TextBox)this.m_DlCustomerInfo.FindControl("txtYiJi")).DataBind();
    那如果DATALIST里文本框控件绑定数据源,报错。
    请问怎么改?
      

  5.   

    TextBox怎么可以绑定数据源,直接赋值
      

  6.   

    文本框不需要绑定数据源,  直接赋值就可以了。都不晓得你的DataSource是怎么点出来的,编译能通过???
      

  7.   

    文本框是获取一个数据   DataSource是获取数据的集合   所以文本框不好绑DataSource