我在datagrid更新页面中用DropDownList绑定了一列,但是下拉列表中却只有了一个选项。这是怎么回事?请高手作答,谢谢!!!
<EditItemTemplate>
<asp:DropDownList id=WoodDList DataSource="<%# dataSet11 %>" ataMember="prosch" Runat="server" DataTextField="Wood">
   <asp:ListItem Value="-------" Selected="True">-------</asp:ListItem>
   <asp:ListItem Value="Ordered">Ordered</asp:ListItem>
   <asp:ListItem Value="Received">Received</asp:ListItem>
   <asp:ListItem Value="Rework">Rework</asp:ListItem>
</asp:DropDownList>

解决方案 »

  1.   

    <ASP:DROPDOWNLIST id=DepRelationship Runat="server" width="100%" DataSource="<%# getRelationshipList()%>" SelectedIndex="<%# getRelationshipIndex(Container.DataItem)%>">
    </ASP:DROPDOWNLIST>
    //设置默认值
    protected int getRelationshipIndex(object item)
    {
    try
    {
    DataRowView drv=(DataRowView)item;
    string val=drv["DepRelationship"].ToString();
    IList list=getRelationshipList();
    for(int i=0;i<list.Count;i++)
    {
    if(((ListItem)list[i]).Text.ToLower()==val.ToLower())
    {
    return i;
    }
    }
    }
    catch
    {
    return 0;
    }
    return 0;

    }
    //绑定数据
    protected IList getRelationshipList()
    {
    return QuestionnaireLogic.ListRelationship();
    }
      

  2.   

    public static IList ListRelationship()
    {
    ArrayList list=new ArrayList();
    foreach(int i in Enum.GetValues(typeof(Entity.EnumRelationship)))
    {
    ListItem listitem = new ListItem(Enum.GetName(typeof(Entity.EnumRelationship),i),i.ToString());
    list.Add(listitem);
    }
    return list;
    }
      

  3.   

    不知道楼主有没有 设置 datavaluefield 和datatextfield属性
      

  4.   

    我是新手,看不大懂,我有疑问,就是我的DropDownList是在模板列中的,不能直接在代码里引用吧。而且,只有在进入编辑模式下,才会生成下拉菜单的实例吧。
      

  5.   

    已经设置了datavaluefield和datatextfield
      

  6.   

    <asp:DropDownList id=WoodDList DataSource="<%# dataSet11 %>" ataMember="prosch" Runat="server" DataTextField="Wood">
       <asp:ListItem Value="-------" Selected="True">-------</asp:ListItem>
       <asp:ListItem Value="Ordered">Ordered</asp:ListItem>
       <asp:ListItem Value="Received">Received</asp:ListItem>
       <asp:ListItem Value="Rework">Rework</asp:ListItem>
    </asp:DropDownList>
    -------------
    楼主怎么这么写呢?
    要么全部在前台添加选项,要么全部在后台添加选项,搞得不伦不类的.
    你只显示一个选项,可能就跟上述写法有关.
    你把前面的绑定什么的去掉,它肯定会有三个选项.
      

  7.   

    绑定之后,再添加的语法如下:
    WoodDList.Items.Add(new ListItem("文本值","value值"));
      

  8.   

    我原来是用代码加的DropDownList,后来又用属性改了,可能看着让大家迷糊了,我是新手,多见谅.
      

  9.   

    为什么会没有了后边选项呢?是不是绑定了就不能用listitem加别的选项了?
    如果实在解决不了,还是要给大家分数的。