韩国福利视频2828网

当前位置:美女AV > Web开发 > ASP.NET > 正文  |  快速导航:ASP PHP JSP ASP.NET JavaScript JQuery Extjs Ajax Silverlight Flex WebService WCF prototype mootools Dojo
  • DropDownList总是选中第一项的解决方法

  • 字号:[ ]2014-3-2 16:56:45  阅读:15次  来源:乐猪网  编辑:银河精灵  收藏
  • 摘要:在ASP.NET开发中,DropDownList下拉框服务器控件是最常用的控件之一。虽然它给软件开发人员带来了很多方便,但不理解它的运行机制往往会出现一些奇怪的现象,例如总是选中第一项的怪象。
  • 韩国福利视频2828网昨天,在网页开发的过程中,在页面中使用了一个 DropDownList 服务器控件,发现了一个很奇怪的问题,不论在页面中选中哪一项,在后台获取到的值总是第一项的值,看了好久也没有发现问题出在哪里,DropDownList控件在开发中已经使用了无数遍了,对照了其他代码都是一样的,晕!

    韩国福利视频2828网经过了几分钟之后,实在是看不出问题在哪里只好到网上查找答案,网上果然有不少人遇到“一样”的问题—— DropDownList 总是选中第一项。网上的解决方法都是说在 DropDownList 绑定时要在 Page_Load 事件要使用 if(!IsPostBack),可是我是这样绑定的,在网上还是没有找到解决的方法。

    后来,自己静静地左思右想,是不是因为自己在绑定 DropDownList 的时候,只给 Text 赋值,而没有给 Value 赋值导致的呢?接着我就尝试把每一项的 Value 赋值,果然没有这样的现象了!

    现在总结 DropDownList 控件总是选中第一项的两种原因。

    情况一,请看下面的代码:

    客户端代码:

    <asp:DropDownListID="ddl1"runat="server"> 
    </asp:DropDownList>

    服务端代码:

    protected void Page_Load(object sender, EventArgs e) 
    { 
        BindDropDownList(); 
    } 
      
    private void BindDropDownList() 
    { 
        ddl1.Items.Clear(); //每次绑定前,先清除所有项 
        for (int i = 1; i <= 3; i++) 
        { 
            ListItem item1 = new ListItem(); 
            item1.Text = "第" + i.ToString() + "项"; 
            item1.Value = "第" + i.ToString() + "项"; 
            ddl1.Items.Add(item1); 
        } 
    }

    上面代码案例,也就是网上说的总是选中第一项(选择不能改变选项),绑定方法写在 if (!IsPostBack) 里就可以解决了,代码如下:

    protected void Page_Load(object sender, EventArgs e) 
    { 
        if (!IsPostBack) 
        { 
            BindDropDownList(); 
        } 
    }

    情况二,即是笔者遇到的,请看下面的代码:

    客户端代码:

    <asp:DropDownList ID="ddl1" runat="server"> 
    </asp:DropDownList> 
    &nbsp;<asp:Button ID="btnGet" runat="server" Text="获取" onclick="btnGet_Click" />

    服务端代码:

    protected void Page_Load(object sender, EventArgs e) 
    { 
        if (!IsPostBack) 
        { 
            BindDropDownList(); 
        } 
    } 
      
    private void BindDropDownList() 
    { 
        ddl1.Items.Clear(); //每次绑定前,先清除所有项 
        for (int i = 1; i <= 3; i++) 
        { 
            ListItem item1 = new ListItem(); 
            item1.Text = "第" + i.ToString() + "项"; 
            item1.Value = ""; 
            ddl1.Items.Add(item1); 
        } 
    } 
      
    protected void btnGet_Click(object sender, EventArgs e) 
    { 
        string str = ddl1.SelectedItem.Text; 
        Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "<script>alert('" + str + "');</script>"); 
    }

    注意 item1.Value 这个地方,是没有赋值的,然而导致获取 Text 的值错乱了,只要给 Value 赋上值就没有问题了!

  • 顶一下
    (0)
    0%
    踩一下
    (0)
    0%
乐猪网 版权所有 Copyright © 2012-2015 msoo172.cn All rights reserved.
本站用于学习交流,部分文章来源于网络,如果不慎侵犯了您的权益,请AV视频 我们删除!
粤ICP备12000837号

韩国福利视频2828网