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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Tracert 工作原理[通俗易懂]

    Tracert 工作原理[通俗易懂]Tracert工作原理通过向目标发送不同IP生存时间(TTL)值的“Internet控制消息协议(ICMP)”回应数据包,Tracert诊断程序确定到目标所采取的路由。要求路径上的每个路由器在转发数据包之前至少将数据包上的TTL递减1。数据包上的TTL减为0时,路由器应该将“ICMP已超时”的消息发回源系统。Tracert先发送T…

    2022年9月14日
    2
  • 利用DNSPod实现动态域名解析DDNS (解析内网、外网或IPV6地址)

    利用DNSPod实现动态域名解析DDNS (解析内网、外网或IPV6地址)更新记录2020-01-03-修复了12月31日由于dnspodAPI改动导致的失效。2019-05-24-支持IPV6(如你所料,之前所说的支持是假的)-根据网站的更新,api调用使用TLSv1.2,解决了之前调用失败的问题(感谢@lth410指出)。——————————-以下正文—————–…

    2022年4月30日
    60
  • rabbitmq集群搭建(Linux)[通俗易懂]

    rabbitmq集群搭建(Linux)[通俗易懂]rabbitmq集群搭建(Linux)第一步:安装Erlang环境otp_src_20.1.tar.gzrabbitmq-server-generic-unix-3.7.4.tar需要的自提链接:https://pan.baidu.com/s/1WdBITXssCqU4CslnR8930A提取码:1phu安装依赖包1.yum-yinstallmakegccgcc-c++kernel-develm4ncurses-developenssl-devel编译安装(

    2022年9月10日
    4
  • 数字在排序数组中出现的次数「建议收藏」

    数字在排序数组中出现的次数

    2022年2月4日
    39
  • IIS7 HTTP.sys远程代码执行漏洞

    IIS7 HTTP.sys远程代码执行漏洞POC:GET/welcome.pngHTTP/1.1Host:www.test.comRange:bytes=0-18446744073709551615显示结果若是包含以下结果证明漏洞存在: RequestedRangeNotSatisfiable 转载于:https://blog.51cto.com/zhpfbk/1878418…

    2022年7月25日
    7
  • 网站404页面怎么做

    网站404页面怎么做网站404页面怎么做?谈及网站404页面,诸多站长在网站运营的过程中,难以避免404页面的出现。404页面意味着网站存在死链接,当搜索引擎蜘蛛爬取此类网址的时候,应当反馈404状态吗,告知此URL网址已经失效,搜索引擎蜘蛛便会回馈到数据中心,从中清除数据。而在页面的前端,应该对访客予以信息提示,告知内容的已经不存在,优化相关搜索内容,尽可能避免降低访客体验度,由此可见,网站404页面的制作应当以两种出发点进行,即对于搜索引擎蜘蛛状态吗的正确回馈和对前端界面及内容设计出发。404网页正确设置网

    2022年7月27日
    4

发表回复

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

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