关于HTML RunAt Server下拉列表框获取被选值的问题

dabpop139 2010-09-10 09:09:35
HTML部分
===================================
<td align="left" valign="middle">
<select name="tid" class="main" id="tids" dataType="Require" msg="" runat="server">
<option value="初始">--请选择分类--</option>
</select>
</td>
<input type="submit" value="提交" name="Submit" class="Btn_v1" id="Submit">
================================
CS文件部分
================================
while (drReader.Read())
{
ListItem ltItem = new ListItem();
ltItem.Value = drReader["id"].ToString();
ltItem.Text = drReader["cate_name"].ToString();
tid.Items.Add(ltItem);
}
if (IsPostBack)
{
Cfun.net_alert(tid.Value)
}
其它的HTML RunAt Server 控件用.Value属性都可以获值
就是下拉列表框tid获得的值不管怎么选其它的下拉项.Value属性获取到的都是“初始”这个值
...全文
275 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 dabpop139 的回复:]
ltItem.Attributes["enableviewstate"] = "true";
我这样加属性好像是加上了但没有效果
还是要直接写的才可以接收到值
[/Quote]
设置你的tids。

去通知asp.net知道,而不是仅仅在输出给浏览器的html中设什么“属性”。
dabpop139 2010-09-11
  • 打赏
  • 举报
回复
ltItem.Attributes["enableviewstate"] = "true";
我这样加属性好像是加上了但没有效果
还是要直接写的才可以接收到值
  • 打赏
  • 举报
回复
对于专业asp.net开发,而不是只是做个用来学习的小demo,我经常做这样的最基本测试:在页面上放一个button控件,引起回发。由于这个控件什么都不做,显然,页面上任何其它地方都不会丢失状态、不乱,这才是asp.net软件开发的最低标准。

你做到了吗?
  • 打赏
  • 举报
回复
如果你不使用viewstate,还打算使用asp.net吗?

直接使用 html+javascript开发吧,到html论坛去学编程。如一些人所说,“不使用asp.net控件”。
dabpop139 2010-09-11
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 net_lover 的回复:]
需要设置
<%@ Page Language="C#" EnableViewState="true" %>

例子

HTML code
<%@ Page Language="C#" EnableViewState="true" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww……
[/Quote]
先忠心谢谢大家的帮忙
添加个.net按钮控件 .NET会在生成前台代码时加入一段JS看起来很别扭。
我在Config里也设了全局的 EnableViewState="false" 原因也是因为.NET会在生成前台代码时加入一大段回调代码。
经测试我发现可以在
<option value="初始">--请选择分类--</option>上用EnableViewState="true" 属性设置
完整的就是<option value="初始" enableviewstate="true">--请选择分类--</option>
这样就可以直接tid.Value获得到被选中项的值
但在C#后台CS代码上怎么动态把属性加上去
for (int i = 0; i < 9; i++)
{
ListItem ltItem = new ListItem();
ltItem.Value = i.ToString();
ltItem.Text = i.ToString();
tid.Items.Add(ltItem);
}
就这一段 不知怎么加上enableviewstate属性
孟子E章 2010-09-11
  • 打赏
  • 举报
回复
需要设置
<%@ Page Language="C#" EnableViewState="true" %>

例子
<%@ Page Language="C#" EnableViewState="true" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">


protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
for (int i = 0; i < 9; i++)
{
ListItem ltItem = new ListItem();
ltItem.Value = i.ToString();
ltItem.Text = i.ToString();
tid.Items.Add(ltItem);
}
}
else
{
Response.Write(tid.Value);
}
}
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<select name="tid" class="main" id="tid" dataType="Require" msg="" runat="server">
<option value="初始">--请选择分类--</option>
</select>

<input type="submit" value="提交" name="Submit" class="Btn_v1" id="Submit">
</form>
</body>
</html>
wuyq11 2010-09-10
  • 打赏
  • 举报
回复
select 的值 放在服务器端的hidden
<select name="mySelect" runat"server"id="mySelect"> </select>
或Request.Form["mySelect"]取值

var item = $("select[@name=items] option[@selected]").text();
select下拉框的第二个元素为当前选中值

var obj=document.getElementById('mySelect');
var index=obj.selectedIndex;
var val = obj.options[index].text


<Select id="Select1" rant="server" ID="s1>
</Select>
s1.Value
if(!IsPostBack){}
dalmeeme 2010-09-10
  • 打赏
  • 举报
回复
通过tid.Items[tid.SelectedIndex].Value取得当前选择项的值,而不是tid.Value。
leiziaitudou 2010-09-10
  • 打赏
  • 举报
回复
(Page.FindControl("tids") as HtmlSelect).Value
如果是你取值错了就这么试一试
dalmeeme 2010-09-10
  • 打赏
  • 举报
回复
如果你要选择某项后看该项的value值,可以添加个.net按钮控件:
	protected void Button1_Click(object sender, EventArgs e)
{
Response.Write(tid.Items[tid.SelectedIndex].Value);
}
dalmeeme 2010-09-10
  • 打赏
  • 举报
回复
if (IsPostBack)
{
Cfun.net_alert(tid.Value)
}
不对啊,你怎么输出tid的value呢?应该是tid.Items[i].Value才对啊,i是序号你自己填。
leiziaitudou 2010-09-10
  • 打赏
  • 举报
回复
楼主用的是html的Select控件吧
(Page.FindControl("tids") as HtmlSelect).Items.Add(new ListItem("a","a"));
试一试这么赋值
yuyizhao198 2010-09-10
  • 打赏
  • 举报
回复
你绑定没?运行后select 的选项值发生变化没

62,272

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧