<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值。问题够简单的吧,大家不要笑我哟!
<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值。问题够简单的吧,大家不要笑我哟!
string str1 = d1.SelectText;
-----------------------
有这个属性吗?!
string text = d1.selecteditem.text;
string value = d1.selecteditem.value;
---------------------------
看清楚人家的回复,不要误导楼主.
请问Request的方法怎么用啊????
<option selected> 请选择 </option>
<option value="1"> 脚本语言 </option>
<option value="2"> 高级语言 </option>
<option value="3"> 其他语言 </option>
</select>
string key = this.d1.Value.Trim();
加个runat="server"不好吗
难道真的没有人知道怎么取标签的值吗??
------------------------
string selectedValue = Request.Form["s1"].ToString();
问题要强调清楚.
========================
这样子貌似也不行哦, protected void Button1_Click(object sender, EventArgs e)
{
Label2.Text = Request.Form["s1"].ToString();
}
触发事件后,Label2.Text 显示空的
===================================
<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>
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");
原来是select2[1][2] = new Option("JSP", " "); 后面的“ ”缺了标记。
但是又有一个新问题了,触发了Button1_Click事件后,下拉框的选中状态被初始化了,如何保持他的初始化呢??
----------------
正常,因为你的options是客户端脚本生成的,回发后就会被重新初始化,解决办法是将提交前的选项值保存一下(在服务端代码设置保存),页面生新加载时用脚本设置回去.
页面生新加载时用脚本设置回去.-----------------我一直都是处理后台代码的,没怎么处理过前台代码,所以,怎么设置回去啊
================
偶好笨哦!!!
就比如说,我从数据库里已经读取出要初始name="s1"和name="s2"的值了,假如是3和5,请问接下来如何设置啊?》??
思路是这样的:
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();
}
}
<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();
}
}
给我加分