本人主界面有个关于车的详细信息列表,显示的字段有序号、型号(主键,nvarchar类型)、外形尺寸、生产厂家(取值可以是东风、本田、解放等,从数据库读取)等信息。
  现有一个跳转的修改界面,修改根据型号读取该车信息,厂家用DropDownList控件绑定,DropDownList放在DataList里。比如要修改厂家为东风车的信息,如果根据型号只能读取一条记录,DropDownList只会出现东风。现在我想在下拉框要出现所有厂家的信息,修改解放牌的车的时候解放默认选中,修改东风默认东风选中,下拉框还有其它厂家,且厂家不重复。如果只按照型号读取一条记录显然办不到,如果DropDownList重新绑定一个方法这又跟修改时关联厂家信息不一致,如何实现? 谢谢!

解决方案 »

  1.   


    <asp:DropDownList ID="ddlList" runat="server">
            <asp:ListItem Text="东风" Value="1"></asp:ListItem>
            <asp:ListItem Text="本田" Value="2"></asp:ListItem>
        </asp:DropDownList>
    //跳转到修改页面的时候你可以多传一个参数[@生产厂家] string str = Request.QueryString["@生产厂家"];
    ddlList.Items.FindByValue(str).Selected = true
      

  2.   

    谢谢!因为我用了DataList套在外面,DropDownList在里面,在Page_Load事件中,我先要设定DataList的数据源(根据车的型号获取这条记录),为了给DropDownList赋值,我在Page_Load弄了个foreach循环,foreach (DataListItem item in DataList1.Items)
                {
                    DropDownList ddlFactory = (DropDownList)item.FindControl("ddlFactory");
                    ddlFactory.Items.FindByValue(str).Selected = true;
                }
    现在只出来value=1的值,不知什么原因。还是我这个循环有问题?
      

  3.   

    DDL先绑定所有值。然后页面
    <asp:DropDownList value="<%= value %>"/>
      

  4.   

    1,用递归先绑好DropDownList的数据源
    2,再根据修改传过来的Id值 绑好DropDownList
      dropCategory.SelectedValue = 根据id查出来实体.存进去的SelectValue