DropDownList绑定+获取值问题!高手来帮忙解决呀!新手急在线等!

appasp 2007-01-18 01:24:32
我用一个DropDownList绑定了!5个人名!人名分别写在数据库中2-6行,为了让程序运行起来美观一些!我把数据库中第一行写如的是“请选择”然后在运行的时候DropDownList的默认就是第一项请选择!
绑定代码:

(cnat_21)是DropDownList的控件名称
(mz)数据库人名字段
(jfxh)是数据库编号字段

SqlCommand cmc=new SqlCommand("select * from cnatjf",con);
SqlDataReader sdf=cmc.ExecuteReader();
this.cnat_21.DataSource=sdf;
this.cnat_21.DataTextField="mz";
this.cnat_21.DataValueField="jfxh";
this.cnat_21.DataBind();
sdf.Close();

然后比方说我的第一个人名叫“小二”..以此类推..“小五”我想让程序在运行的时候比方说我选择了“小三”就吧小三的人名存入数据库!
我着个程序又两个类一个是实体类,一个是操作类
实体类的代码:
public string cnat_21;
public string cnat_22;
..........
..........
操作类的代码:
SqlConnection con=personOperate.createCon();
con.Open();
SqlCommand cmd=new SqlCommand("insert into cnatword values(@zzr,@....@....)",con);

SqlParameter para=new SqlParameter("@zzr",SqlDbType.VarChar,10);
para.Value=p.cnat_21;
cmd.Parameters.Add(para);
我是用的传参没用存储过程!传的是P

传过去的页面代码:
if(this.cnat_21.SelectedValue != "小二")
{
p.cnat_21 = this.cnat_21.SelectedItem.Text;
}
......
......
......
......
接收值的时候这样写对吗?我试验好了几次但是都接收到的是第一个值也就是数据库中的第一行的数据”请选择“
...全文
944 54 打赏 收藏 转发到动态 举报
写回复
用AI写文章
54 条回复
切换为时间正序
请发表友善的回复…
发表回复
junon 2008-07-17
  • 打赏
  • 举报
回复
纳闷啊
http://topic.csdn.net/t/20051107/14/4376589.html
亦桐 2008-07-14
  • 打赏
  • 举报
回复
(一)支持楼上,如果数据帮顶后还想在重新加入选项,只有在绑定之后加:
this.cnat_21.Items.Insert(0,new ListItem( "请选择 ", " "));
这样保证加入的"请选择"在第一项
(二)传过去的页面代码:
if(this.cnat_21.SelectedValue != "小二 ")
{
p.cnat_21 = this.cnat_21.SelectedItem.Text;
}
......
......
......
----------------------------------------
并且你这里写错了,因为你DropDownlist中的DataTextField= "mz ";
DropDownlist的DataValueField= "jfxh ";
你if(this.cnat_21.SelectedValue != "小二 ")判断它永远不能相等的,所以你取到的只是 '请选择'


dotnetsong 2008-07-14
  • 打赏
  • 举报
回复
SqlCommand cmc=new SqlCommand( "select * from cnatjf ",con);
SqlDataReader sdf=cmc.ExecuteReader();
this.cnat_21.DataSource=sdf;
this.cnat_21.DataTextField= "mz ";
this.cnat_21.DataValueField= "jfxh ";
this.cnat_21.Items.Insert(0,new ListItem( "请选择 ", " "));
this.cnat_21.DataBind();
sdf.Close();
不知道LZ解决了没有?
如果不显示请选择是因为你的位置放错了,应该放在databind()后面才行。
应该这样吧

SqlCommand cmc=new SqlCommand( "select * from cnatjf ",con);
SqlDataReader sdf=cmc.ExecuteReader();
this.cnat_21.DataSource=sdf;
this.cnat_21.DataTextField= "mz ";
this.cnat_21.DataValueField= "jfxh ";
this.cnat_21.DataBind();
sdf.Close();
this.cnat_21.Items.Insert(0,new ListItem( "请选择 ", " "));
LZ试下吧
namhyuk 2008-07-14
  • 打赏
  • 举报
回复
通宵了,太累了,没看,只是帮楼主顶一下。不知问题解决了没有。
sxmonsy 2008-07-11
  • 打赏
  • 举报
回复
[Quote=引用 48 楼 brooklyng60 的回复:]
把那写代码放在.!Ispostback里面,然后把
if(!Ispostback)
{
...
}

然后那你的下拉框的AutoPostBack设为true
然后在绑定后加this.cnat_21.Items.Insert(0,new ListItem( "--请选择-- ", " "));
[/Quote]
brooklyng60 2008-07-11
  • 打赏
  • 举报
回复
把那写代码放在.!Ispostback里面,然后把
if(!Ispostback)
{
...
}

然后那你的下拉框的AutoPostBack设为true
然后在绑定后加this.cnat_21.Items.Insert(0,new ListItem( "--请选择-- ", " "));
mengjun5200 2008-07-11
  • 打赏
  • 举报
回复

还有这句,this.cnat_21.DataValueField= "jfxh ";你绑定的ID编号,可是你却这样写,这2个一辈子都不会相等if(this.cnat_21.SelectedValue != "小二 ")
{
p.cnat_21 = this.cnat_21.SelectedItem.Text;
}
mengjun5200 2008-07-11
  • 打赏
  • 举报
回复
我觉得你写的很有问题,没有存储过程你用什么参数啊,晕,这样传也传不了值
junon 2008-07-10
  • 打赏
  • 举报
回复
3.SelectedValue
junon 2008-07-10
  • 打赏
  • 举报
回复
兄弟,我的问题解决了
1.!Ispostback
2.AutoPostBack="true"
cn_yzh 2008-07-10
  • 打赏
  • 举报
回复
错在这一句:this.cnat_21.SelectedItem.Text;
junon 2008-07-10
  • 打赏
  • 举报
回复
上面有两个引号、和括弧写错了。

这里也有一个相同的帖子
http://topic.csdn.net/u/20070606/22/419b7894-731d-42e2-b98d-5c8a1b6608de.html?seed=822352797


也没解决
junon 2008-07-10
  • 打赏
  • 举报
回复
我也是这样啊,每次获取的选择项数据都是第一个(默认值),并且一点击按钮,数据就丢失
<asp:dropdownlist EnableViewState=“true” ID="stationData1" runat="server"></asp:dropdownlist>
<asp:button ID="btnAddNewStation" OnClick="addNewstation_Click" runat="server" text="Button" />
后台:

protected void Page_Load(object sender, EventArgs e)
{
if(!Ispostback)
{
int i=0;
int j = 0;
ArrayList time = new ArrayList();
for (i = 0; i < 24; i++)
for (j = 0; j < 2; j++)
if (j == 0)
time.Add(i + ":00:00");
else
time.Add(i + ":30:00");
stationDataTime1.DataSource = time;
stationDataTime1.DataBind();
}
}

protected void addNewstation_Click(object sender, EventArgs e)
{
Response.Write(@"<script language='javascript'>alert('station=" + stationData1.SelectedValue + " date=" + stationDate.Text + " time=" + stationDataTime1.SelectedValue + "');</script>");

}
wlb854 2007-01-19
  • 打赏
  • 举报
回复
估计你忘了。。
if(Page.IsPostback==false)
{
你的绑定代码
}
WWWDJ1983 2007-01-19
  • 打赏
  • 举报
回复
LASPQQ() ( ) 信誉:100 Blog 2007-1-18 13:59:55 得分: 0



dropdownlist需要引用????


不需要



Debug_mq 2007-01-19
  • 打赏
  • 举报
回复


DropDownList 的回传 属性 选择 true

flysky82 2007-01-18
  • 打赏
  • 举报
回复
應該不會,調試一下
  • 打赏
  • 举报
回复
估计一下,可能是你的请选择不是静态声明的.而是程序加入的.
且这个加入的代码没有放在 not ispostback中
eboy0010 2007-01-18
  • 打赏
  • 举报
回复
最好用存储过程!!1
test33 2007-01-18
  • 打赏
  • 举报
回复
UP`
加载更多回复(33)

62,074

社区成员

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

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

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

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