神啊,救救我吧!关于DropDownList控件SelectedItem的奇怪问题——俺是新手
新建了一个Access表,有两个字段:用户名和密码。
新建一aspx文件,建了一个DropDownList控件,将表绑定到这个控件,其DataTextField="用户名"和DataValueField="密码"。
又加了四个控件,Button用以控件事件,Label控件lblSelectedIndex、lblSelectedText、lblSelectedValue用以显示DropDownList控件的选定项的信息。
问题出现了,不管选定了DropDownList控件的第几项,Label控件总是显示第一项的信息,屡试不爽,烦都烦晕了,谁能救救我啊?
<%@ Page Language="C#"%>
<%@ Import Namespace="System.Data.OleDb" %>
<script runat=server>
void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
OleDbConnection conNorthwind0;
OleDbCommand cmdSelect0;
OleDbDataReader dtrCategories0;
conNorthwind0 = new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=c:\\tmp\\db1.mdb");
cmdSelect0 = new OleDbCommand( "Select * From 用户名表", conNorthwind0 );
conNorthwind0.Open();
dtrCategories0 = cmdSelect0.ExecuteReader();
UserName.DataSource = dtrCategories0;
UserName.DataTextField="用户名";
UserName.DataValueField="密码";
UserName.DataBind();
dtrCategories0.Close();
conNorthwind0.Close();
}
}
void Button_Click(Object sender , EventArgs e)
{
lblSelectedIndex.Text = UserName.SelectedIndex.ToString();
lblSelectedText.Text = UserName.SelectedItem.Text.ToString();
lblSelectedValue.Text = UserName.SelectedItem.Value.ToString();
}
</Script>
<html>
<head><title>DropDownListValueSelected.aspx</title></head>
<body>
<form Runat="Server">
<asp:DropDownList
ID="UserName"
Runat="Server">
</asp:DropDownList>
<asp:Button
Text="Select Category!"
OnClick="Button_Click"
Runat="Server" />
<hr>
Selected Index:
<asp:Label
ID="lblSelectedIndex"
Runat="Server" />
<p>
Selected Text:
<asp:Label
ID="lblSelectedText"
Runat="Server" />
<p>
Selected Value:
<asp:Label
ID="lblSelectedValue"
Runat="Server" />
</form>
</body>
</html>
问题点数:50、回复次数:14Top
1 楼kaixin110(kydk.com)回复于 2005-09-01 16:50:34 得分 0
DropDownList的aupostback设置为true了吗
你单步Debug了吗
你仔细分析变量的值了
谢谢
如果还有问题.欢迎回复Top
2 楼gabriel1(说自己的话,让别人走路去吧)回复于 2005-09-01 16:55:54 得分 0
检查一下你的USerName的enableViewState是否设置为true了Top
3 楼iuhxq(小灰)回复于 2005-09-01 17:00:04 得分 0
DropDownList的aupostback设置为true了吗
检查一下你的USerName的enableViewState是否设置为true了
上面这两条有关系吗?
代码看上去是没错的Top
4 楼ygsygs(雨一直下)回复于 2005-09-01 17:19:22 得分 0
DropDownList的aupostback设置为true了吗
检查一下你的USerName的enableViewState是否设置为true了
这和问题没有太大关系。aupostback不能设为TRUE,否则还没点Button,就自动提交了。
谁帮帮我啊Top
5 楼ygsygs(雨一直下)回复于 2005-09-01 17:30:40 得分 0
我试了一下,如果把
UserName.DataTextField="用户名";
UserName.DataValueField="密码";
改为只有一条:UserName.DataTextField="用户名";
那么就能正常运行,但DataValueField和DataTextField一样,不是我想要的值了。
这怎么回事啊,请大家帮帮忙啦!Top
6 楼ygsygs(雨一直下)回复于 2005-09-02 13:17:09 得分 0
这个问题没人知道吗?不会这么难吧?Top
7 楼hchxxzx(NET?摸到一点门槛)回复于 2005-09-02 13:33:28 得分 0
我把你的代码,全部拷到我的机器上,建立一个相应的表,进行测试,结果完全正常。
怀疑是你的机器问题。
你可重新新建一个页面,然后把代码有用的部分拷过去,再试一下。Top
8 楼fangbuge(窗外的雨)回复于 2005-09-02 13:47:57 得分 0
强人,把密码写到前台去,用户可以先看看再登录,愿意进哪个进哪个!Top
9 楼yusongkun(九道轮回)回复于 2005-09-02 13:48:06 得分 0
感觉你的代码没有问题。自己调试一下,就会发现问题,做好调试
Top
10 楼navy_koo(平湖秋水)回复于 2005-09-02 14:21:10 得分 0
你的数据集是不是有问题?Top
11 楼Tony_HuangMan(发)回复于 2005-09-03 01:32:18 得分 0
如果这样做的话,每改变一次都要向服务器提高一次,我觉得这样做不是很好啊,如果你是这样做的话倒不如用<select>加<javascript>,这样做好多啦Top
12 楼shine_88(签名再好也就那样)回复于 2005-09-03 02:46:29 得分 0
DropDownList的aupostback设置为true了吗
检查一下你的USerName的enableViewState是否设置为true了
Top
13 楼bingbingcha(不思不归,不孟不E,原来是头大灰狼)回复于 2005-09-03 07:48:00 得分 0
在你的Page_Load中加入判断.判断是否回穿..这样才能使用AutoPostBack产生作用.避免重新绑定数据.
if (!Page.IsPostBack){
你的代码.
}Top
14 楼chenghp(不登高山,不知天之高也;不临深溪,不知地之厚也。)回复于 2005-09-03 08:42:12 得分 0
应该是你的DDL控件的AuotPostBack没有设成TRUE,你试试看,。。。应该就是这个问题!Top




