<select name="s1" id="d1" >
        <option selected>请选择</option>
        <option value="1">脚本语言</option>
        <option value="2">高级语言</option>
        <option value="3">其他语言</option>
        </select>
==========================
在我的ABC.ASPX里有一个<select>标签,和一个Button1服务器控件。请问当我触发Button1_Click事件时如何获取<select>选中的value值及text值。问题够简单的吧,大家不要笑我哟!

解决方案 »

  1.   

    string str = d1.SelectValue;
    string str1 = d1.SelectText;
      

  2.   

    要是服务器端控件:楼上的方法就可以了。客户端的:就用Request的方法。
      

  3.   

    QUOTE:string   str1   =   d1.SelectText;
    -----------------------
    有这个属性吗?!
    string text = d1.selecteditem.text;
    string value = d1.selecteditem.value;
      

  4.   

    QUOTE:要是服务器端控件:楼上的方法就可以了。客户端的:就用Request的方法。
    ---------------------------
    看清楚人家的回复,不要误导楼主.
      

  5.   

    如果是服务器控件的话,就不用请教大家了
    请问Request的方法怎么用啊????
      

  6.   

     <select   name="s1"    id="d1"  runat="server"  >
                    <option   selected> 请选择 </option>
                    <option   value="1"> 脚本语言 </option>
                    <option   value="2"> 高级语言 </option>
                    <option   value="3"> 其他语言 </option>
     </select> 
    string key = this.d1.Value.Trim();
    加个runat="server"不好吗          
      

  7.   

    QUOTE:感觉不是很好啊!
    难道真的没有人知道怎么取标签的值吗??
    ------------------------
    string selectedValue = Request.Form["s1"].ToString();
    问题要强调清楚.
      

  8.   

    string   selectedValue   =   Request.Form["s1"].ToString(); 
    ========================
     这样子貌似也不行哦,  protected void Button1_Click(object sender, EventArgs e)
        {
            Label2.Text = Request.Form["s1"].ToString(); 
        }
    触发事件后,Label2.Text 显示空的
      

  9.   

    测试过完全可以,不行的话,那是RPWT了
      

  10.   

    咱们再做更深一步讨论啊,以下是一个二级菜单联动,name="s2"会根据name="s1"的改变而改变,请问我如何取得name="s2"所选的值呢?这个才是我真正碰到的问题,请高手赐教咯!!!
    ===================================
    <form name="frm">
    <select name="s1" onChange="redirec(document.frm.s1.options.selectedIndex)">
    <option selected>请选择</option>
    <option value="1">脚本语言</option>
    <option value="2">高级语言</option>
    <option value="3">其他语言</option>
    </select>
    <select name="s2">
    <option value="请选择" selected>请选择</option>
    </select>
    </form>
    <script language="javascript">
    //获取一级菜单长度
    var select1_len = document.frm.s1.options.length;
    var select2 = new Array(select1_len);//把一级菜单都设为数组
    for (i=0; i<select1_len; i++)
    {
    select2[i] = new Array();
    }//定义基本选项
    select2[0][0] = new Option("请选择", " ");select2[1][0] = new Option("PHP", " ");
    select2[1][1] = new Option("ASP", " ");
    select2[1][2] = new Option("JSP", " ");select2[2][0] = new Option("C/C++", " ");
    select2[2][1] = new Option("Java", " ");
    select2[2][2] = new Option("C#", " ");select2[3][0] = new Option("Perl", " ");
    select2[3][1] = new Option("Ruby", " ");
    select2[3][2] = new Option("Python", " ");//联动函数
    function redirec(x)
    {
    var temp = document.frm.s2; 
    for (i=0;i<select2[x].length;i++)
    {
    temp.options[i]=new Option(select2[x][i].text,select2[x][i].value);
    }
    temp.options[0].selected=true;}</script>
      

  11.   

    select2[0][0]   =   new   Option("请选择",   "   ");select2[1][0]   =   new   Option("PHP",   "   ");
    select2[1][1]   =   new   Option("ASP",   "   ");
    select2[1][2]   =   new   Option("JSP",   "   ");select2[2][0]   =   new   Option("C/C++",   "   ");
    select2[2][1]   =   new   Option("Java",   "   ");
    select2[2][2]   =   new   Option("C#",   "   ");select2[3][0]   =   new   Option("Perl",   "   ");
    select2[3][1]   =   new   Option("Ruby",   "   ");
    select2[3][2]   =   new   Option("Python",   "   ");
    //以上改为形如以下形式试试
    //select2[3][2]   =   new   Option("Python",   "Python");
      

  12.   

    我明白了!!!
    原来是select2[1][2]   =   new   Option("JSP",   "   "); 后面的“  ”缺了标记。
    但是又有一个新问题了,触发了Button1_Click事件后,下拉框的选中状态被初始化了,如何保持他的初始化呢??
      

  13.   

    QUOTE:但是又有一个新问题了,触发了Button1_Click事件后,下拉框的选中状态被初始化了,如何保持他的初始化呢??
    ----------------
    正常,因为你的options是客户端脚本生成的,回发后就会被重新初始化,解决办法是将提交前的选项值保存一下(在服务端代码设置保存),页面生新加载时用脚本设置回去.
      

  14.   

    解决办法是将提交前的选项值保存一下(在服务端代码设置保存)---------可以用cookie来保存吗??或者有其他的好方法吗??
    页面生新加载时用脚本设置回去.-----------------我一直都是处理后台代码的,没怎么处理过前台代码,所以,怎么设置回去啊
    ================
    偶好笨哦!!!
      

  15.   

    楼上是好人哦,求求帮帮忙哦!!!
    就比如说,我从数据库里已经读取出要初始name="s1"和name="s2"的值了,假如是3和5,请问接下来如何设置啊?》??
      

  16.   

    给点简单的演示代码给你参考一下吧,希望能达到抛砖引玉的效果.
    思路是这样的:
    1. 用户提交后,服务端处理请求,同时,用一个 hidden 控件保存客户已选择的值.
    2. 提交回发后,页面重新加载,搜索脚本函数 setSelectedIndex,该函数是设置下拉列表的项
    3. 执行 setSelectedIndex 函数, 判断是否有保存已选择值在 hidden 控件,有则通过循环下拉列表的项,当某项的值与已保存的值一致时,则将该项设置为已选择项,跳出循环,整个过程结束..aspx
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <select   name="s1"   id="d1"   >
                    <option selected="selected"> 请选择 </option>
                    <option   value="1"> 脚本语言 </option>
                    <option   value="2"> 高级语言 </option>
                    <option   value="3"> 其他语言 </option>
                    </select>
            <asp:HiddenField ID="HiddenField1" runat="server" Value="" /> 
            <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" /></div>
        </form>
        <script type="text/javascript">
        function setSelectedIndex(){
            var selectedValue=document.getElementById("<%= HiddenField1.ClientID %>").value;
            if(selectedValue!=""){
                var oList=document.getElementById("d1");
                for(var i=0;i!=oList.lenght;++i){
                    if(oList.options[i].value==selectedValue){
                        oList.selectedIndex=oList.options[i].index;
                        break;
                    }
                }
            }
        }
        setSelectedIndex();
        </script>
    </body>
    </html>.cs
    [code=C#]using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;public partial class Default3 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            this.Title = Request.Form["s1"].ToString();
            HiddenField1.Value = Request.Form["s1"].ToString();
        }
    }
      

  17.   

    aspx HTML code<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <select   name="s1"   id="d1"   >
                    <option selected="selected"> 请选择 </option>
                    <option   value="1"> 脚本语言 </option>
                    <option   value="2"> 高级语言 </option>
                    <option   value="3"> 其他语言 </option>
                    </select>
            <asp:HiddenField ID="HiddenField1" runat="server" Value="" /> 
            <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" /></div>
        </form>
        <script type="text/javascript">
        function setSelectedIndex(){
            var selectedValue=document.getElementById("<%= HiddenField1.ClientID %>").value;
            if(selectedValue!=""){
                var oList=document.getElementById("d1");
                for(var i=0;i!=oList.lenght;++i){
                    if(oList.options[i].value==selectedValue){
                        oList.selectedIndex=oList.options[i].index;
                        break;
                    }
                }
            }
        }
        setSelectedIndex();
        </script>
    </body>
    </html>.cs 
    [code=C#]using   System; 
    using   System.Data; 
    using   System.Configuration; 
    using   System.Collections; 
    using   System.Web; 
    using   System.Web.Security; 
    using   System.Web.UI; 
    using   System.Web.UI.WebControls; 
    using   System.Web.UI.WebControls.WebParts; 
    using   System.Web.UI.HtmlControls; public   partial   class   Default3   :   System.Web.UI.Page 

            protected   void   Page_Load(object   sender,   EventArgs   e) 
            { 
            } 
            protected   void   Button1_Click(object   sender,   EventArgs   e) 
            { 
                    this.Title   =   Request.Form["s1"].ToString(); 
                    HiddenField1.Value   =   Request.Form["s1"].ToString(); 
            } 

    给我加分