C# ASP.NET DROPDOWNLIST控件绑定数据库,用DropDownList1.SelectedValue.ToString 读取的选项值始终是第一项的值的解决方法

C# ASP.NET DROPDOWNLIST控件绑定数据库,用DropDownList1.SelectedValue.ToString 读取的选项值始终是第一项的值的解决方法1、C#ASP.NETDROPDOWNLIST控件绑定数据库,数据库内容如下数据库有3个字段:id,name,map。数据库只有1个表,表名为table12、前台代码如下:<asp:DropDownListID=”DropDownList1″runat=”server”style=”z-index:1;left:360px;top:80px;position:absolute;height:35px;…

大家好,又见面了,我是你们的朋友全栈君。

1、C# ASP.NET  DROPDOWNLIST控件绑定数据库,数据库内容如下

     数据库有3个字段:id,name,map。

     数据库只有1个表,表名为  table1    

C# ASP.NET DROPDOWNLIST控件绑定数据库,用DropDownList1.SelectedValue.ToString 读取的选项值始终是第一项的值的解决方法C# ASP.NET DROPDOWNLIST控件绑定数据库,用DropDownList1.SelectedValue.ToString 读取的选项值始终是第一项的值的解决方法

2、前台代码如下:

        <asp:DropDownList ID="DropDownList1" runat="server" style="z-index: 1; left: 360px; top: 80px; position: absolute; height: 35px; width: 220px; bottom: 343px">
        </asp:DropDownList>

 3、后台代码如下:

 public static DataTable Table(string sql)
        {
            using (MySqlConnection conn = new MySqlConnection(ConnStr))
            {
                MySqlDataAdapter sda = new MySqlDataAdapter(sql, conn);
                DataTable dt = new DataTable();
                sda.Fill(dt);
                return dt;
            }
        }


static string ConnStr = "Server=localhost;UserId=root;Password=12345678;Database=reservoirinfo;pooling=false;CharSet=utf8;port=3306";

    protected void Page_Load(object sender, EventArgs e)
        {
            string sql = string.Format(" select * from table1");          
            DropDownList1.Items.Clear();
            DropDownList1.DataSource = Table(sql);;
            DropDownList1.DataTextField = "name";
            DropDownList1.DataValueField = "id";
            DropDownList1.DataBind();
        }

    protected void Button1_Click(object sender, EventArgs e)
        {
    
            string ss1 = DropDownList1.SelectedValue.ToString();
      
        }

4、网页运行画面
    明明选中的是第二项

C# ASP.NET DROPDOWNLIST控件绑定数据库,用DropDownList1.SelectedValue.ToString 读取的选项值始终是第一项的值的解决方法

但是打断点观察得到的值始终是第一项的值,参见下图: 

C# ASP.NET DROPDOWNLIST控件绑定数据库,用DropDownList1.SelectedValue.ToString 读取的选项值始终是第一项的值的解决方法

5、解决方法

    Page_Load(object sender, EventArgs e) 新增加了一行如下代码:           

    if (!IsPostBack)  
    {
          ......
    }

即可解决,不加入此判断,“SelectedIndexChanged”事件中ID会一直获取的是下拉列表的首行ID。 

 

6、解决后完整的代码

public static DataTable Table(string sql)
        {
            using (MySqlConnection conn = new MySqlConnection(ConnStr))
            {
                MySqlDataAdapter sda = new MySqlDataAdapter(sql, conn);
                DataTable dt = new DataTable();
                sda.Fill(dt);
                return dt;
            }
        }
 

static string ConnStr = "Server=localhost;UserId=root;Password=12345678;Database=reservoirinfo;pooling=false;CharSet=utf8;port=3306";

    protected void Page_Load(object sender, EventArgs e)
        {
            string sql = string.Format(" select * from table1");   
   
            if (!IsPostBack)
            {
                DropDownList1.Items.Clear();
                DropDownList1.DataSource = Table(sql); ;
                DropDownList1.DataTextField = "id";//这才是要显示的字段
                DropDownList1.DataValueField = "id";//必须绑定int类型,不写发布会出错
                DropDownList1.DataBind();
                DropDownList1.Items.Insert(0, new ListItem("--请你选择--"));  //插入空项,此项必须放到数据绑定之后
            }
        }
 
    protected void Button1_Click(object sender, EventArgs e)
        {
     
            string ss1 = DropDownList1.SelectedValue.ToString();
       
        }

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/161277.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 上海居住证怎么转户口(上海居住证转户口需要多久)

    2019独角兽企业重金招聘Python工程师标准>>>…

    2022年4月12日
    87
  • nginx配置多个server

    nginx配置多个server server{listen80;server_namelocalhost; rootC:\Users\Administrator\Desktop\dist;location/{ try_files$uri/index.html;} location/api/{ proxy_set_headerHost$host; proxy_set_

    2022年4月4日
    581
  • 【金融市场基础知识】——金融市场体系

    【金融市场基础知识】——金融市场体系阅读之前看这里????:博主是一名正在学习证券知识的学生,在每个领域我们都应当是学生的心态,也不应该拥有身份标签来限制自己学习的范围,所以博客记录的是在学习过程中一些总结,也希望和大家一起进步,在记录之时,未免存在很多疏漏和不全,如有问题,还请私聊博主指正。博客地址:天阑之蓝的博客,学习过程中不免有困难和迷茫,希望大家都能在这学习的过程中肯定自己,超越自己,最终创造自己。由于自己的学习兴趣,所以决定学习证券从业的知识,也继续写博客来进行总结和归纳。目录金融市场体系一、金融市场概述1、金融市场的概念和

    2022年5月28日
    35
  • 【毕业项目】基于VUE开发的电商后台管理系统

    【毕业项目】基于VUE开发的电商后台管理系统摘要随着我国互联网普及率的提高,电子商务发展插上了腾飞的翅膀,一路高歌猛进。本后台系统旨在借助先进的计算机、快捷的网络以及庞大的云数据存储来帮助电商更加方便的统计电商数据。本系统以html、css、javascript作为开发语言。采用前后端分离思想,PC端使用Vue.js框架,服务端采用node.js作为开发平台,Webpack为静态模块打包器,Element-ui为UI组件,less为CSS预处理语言,ES6作为规范。PC端包含用户管理模块、权限管理模块、角色管理模块、商品管理模块、分类参数管理

    2022年6月13日
    40
  • LEfSe学习[通俗易懂]

    LEfSe学习[通俗易懂]参考:微生物组间差异分析之LEfSe分析LEfSe分析,你真的懂嘛?微生物LEfSe分析图表解读实栗操作:(待续)#!/bin/sh#inthisscriptweshowhowtoperformthebiomarkerdiscoveryoperation#usingLEfSe.ThescriptsrequireLEfSetobein…

    2022年5月29日
    45
  • 如何关闭139端口及445端口等危险端口_windows端口关闭工具

    如何关闭139端口及445端口等危险端口_windows端口关闭工具项目进行安全测试时,使用Nmap扫描端口,发现了几个未关的端口,容易受到黑客的攻击和病毒感染,所以需要关掉。端口如下:111端口RemoteProcedureCall,远程过程调用135端口CVE-2003-0352MicrosoftWindowsDCOMRPC接口长主机名远程缓冲区溢出漏洞(MS03-026)139端口CVE-2003-0533WindowsLoca…

    2022年10月17日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号