我的数据库里有一个技术领域字段(类型tinyint),存值时用数字代替文字(0 信息技术,1 生物技术,2 新材料,3 能源技术,4 激光技术,5 自动化技术 6 航天技术,7 海洋技术,8 其它技术领域)现在使用一个下拉框DROPdownlist绑定它(用代码绑定)要怎么在下拉框显示的是文字而不是数字?

解决方案 »

  1.   

    你应该还有一个Tinyint的表吧? 直接读那个表不好么?没那表的话,就在设置Dropdownlist的Items时候,按顺序填上你的那些文字咧。
      

  2.   

    设置ListItem 如:<asp:ListItem Value="0">信息技术</asp:ListItem>
      

  3.   

    在DropDownList的DataBound事件中
    switch(DropDownList1.Text)
    {
        case "0":
             DropDownList1.Text = "信息技术";
             break;
        case "1":
             DropDownList1.Text = "生物技术";
             break;
         //.............
    }
      

  4.   

    DROPDOWNLIST 不是有一个TEXT属性,一个VALUE属性
      

  5.   

    如果项是固顶的,那么可以在sql语句中处理啊,利用case……when 就可以了。
      

  6.   

    那个。。?我不是很懂2楼的意思,为什么要新建一个tinyint表?还有,我的dropdownlist是用代码绑定了的,从控件上设置item是无效的
      

  7.   

    写错了
    for(int i=0;i<DropDownList1.Items.Count;i++)
    {
        switch(DropDownList1.Items[i].Text)
    {
        case "0":
            DropDownList1.Items[i].Text = "信息技术";
            break;
        case "1":
            DropDownList1.Items[i].Text = "生物技术";
            break;
        //.............

    }
      

  8.   

    2楼的意思是,一般你可以建多一个技术领域表,在这个表里面先定义好0表示信息技术,1表示生物技术等等,这样会比较好具体绑定例子如下
    DataTable dt = dropDownList.GetDDL(kinds); //从数据库找到需要的字段,仅供参考
    ddl.DataSource = dt;//ddl是你要的那个下拉列表
    ddl.DataTextField = dt.Columns["技术领域"].ToString();
    ddl.DataValueField = dt.Columns["ID"].ToString();//这里的id就是你的那个0 1 2 等等
    ddl.DataBind();这个是我做的项目的绑定方法,仅供参考要是你不想加多一个技术领域表,可以像其他人说的,绑定死那些数据,就是用ddl.Items.Insert这个方法,逐个添加到下拉列表里面
      

  9.   

    非常感谢11楼的答案!可以用了,但又出现新问题了:
    “/WebSite2”应用程序中的服务器错误。
    --------------------------------------------------------------------------------在将 nvarchar 值 '信息技术' 转换成数据类型 smallint 时失败。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 在将 nvarchar 值 '信息技术' 转换成数据类型 smallint 时失败。源错误: 
    行 66:         cmd.Parameters["@技术领域"].Value = this.DropDownList3.SelectedItem.Value;
    行 67:         GridView1.DataSource = cmd.ExecuteReader();
    行 68:         GridView1.DataBind();
    行 69:         conn.Close();
    行 70:     }
     
    这个似乎很难解决啊
      

  10.   

    DropDownList的Value不要变,还是01234……
    改的只是它的Text
      

  11.   

    如果是winform的comboBox的话,将一个Datatable邦到它的datasources中然后配置好哪个是显示字段,哪个是值字段,一取就ok
      

  12.   

    数据绑定方式。
    或者LZ直接建个表,用SQL语句直接AS过去就行