DropDownList取SelectValue值问题

问题描述

有两个DropDownList以下简称ddl1ddl2ddl1的内容是通过手写添加进去的.ddl2的内容是根据ddl1的选择取得他的SelectValue值然后通过值来查询数据库中的内容付给ddl2然后在一个保存按钮里分别取得两个DropDownList的SelectValue值写入到数据库ddl1我设置了ISPostBackddl2没有设置如果设置了话就无法联动了.现在就是取值的问题明明都选择好了就是取的值不对ddl1是正确的ddl2的值一直是查询出结果的第一个值比如查询出来的内容是a0,a1,a2,a3,a4,a5也已经帮定到ddl2上并显示出来了可以每次点了保存后取出的总会是"a0"再选别的也一样帮忙给看看..代码如下:usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Collections;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;usingSystem.Data.SqlClient;publicpartialclassadmin_fr_add:System.Web.UI.Page{SqlConnectioncon=newSqlConnection("server=o;uid=sa;database=book");protectedvoidPage_Load(objectsender,EventArgse){if(Session["admin"]==null){//Response.Redirect("../ST_contraller.aspx?cname=noadmin");}bind_2();}protectedvoidLinkButton2_Click(objectsender,EventArgse){txtAuthor.Text="";txtCbs.Text="";txtDate.Text="";txtJg.Text="";txtName.Text="";txtNr.Text="";}protectedvoidLinkButton1_Click1(objectsender,EventArgse){stringimg="no.gif";stringaddbook="insertintobook(name,jg,cbs,author,type_1,type_2,class,neirong,date_1,img)values('"+txtName.Text+"','"+txtJg.Text+"','"+txtCbs.Text+"','"+txtAuthor.Text+"','"+ddlD.SelectedValue.ToString()+"','"+ddlC.SelectedValue.ToString()+"','"+DropDownList1.SelectedValue.ToString()+"','"+txtNr.Text+"','"+Convert.ToDateTime(txtDate.Text)+"','"+img+"')";try{SqlCommandcom=newSqlCommand(addbook,con);con.Open();com.ExecuteNonQuery();Label1.Text="保存成功!";//Response.Write("<script>alert('保存成功')</script>");//Response.Redirect(Request.Url.ToString());}catch{Label1.Text="保存失败!";}}//联动publicDataSetgetdata(){stringtype="";if(ddlD.SelectedValue=="A"){type+="select*fromtype_2wheretype_YJ='A'";}if(ddlD.SelectedValue=="G"){type+="select*fromtype_2wheretype_YJ='G'";}if(ddlD.SelectedValue=="B"){type+="select*fromtype_2wheretype_YJ='B'";}if(ddlD.SelectedValue=="L"){type+="select*fromtype_2wheretype_YJ='L'";}if(ddlD.SelectedValue=="N"){type+="select*fromtype_2wheretype_YJ='N'";}if(ddlD.SelectedValue=="K"){type+="select*fromtype_2wheretype_YJ='K'";}if(ddlD.SelectedValue=="M"){type+="select*fromtype_2wheretype_YJ='M'";}if(ddlD.SelectedValue=="I"){type+="select*fromtype_2wheretype_YJ='I'";}SqlDataAdapterda=newSqlDataAdapter(type,con);DataSetds=newDataSet();da.Fill(ds);returnds;}publicvoidbind_2(){DataSetds=getdata();ddlC.DataSource=ds;ddlC.DataTextField="type";ddlC.DataValueField="typeid";ddlC.DataBind();}}ddlC.DataTextField="type";ddlC.DataValueField="typeid";ddlD是第一个DropDownListddlC是第二DropDownList这俩个属性我也设置了但是还是不行帮帮忙把急!!!!!!!!

解决方案

解决方案二:
if(!this.page.ISPostBack){if(Session["admin"]==null){//Response.Redirect("../ST_contraller.aspx?cname=noadmin");}bind_2();}
解决方案三:
你把bind_2()写pageload事件里了,应放在(!PagePostBack)里
解决方案四:
实现联动应写在ddl1的selectindexchanged事件里
解决方案五:
以上两者的方法都可以使用!关键的问题是你应该搞清楚,如果你不写!Page.Isposebackpage_load部分会每次页面事件触发都会先走的跟踪调试一下你就知道了!
解决方案六:
不行呀试了写在if(!Page.Isposeback)里后可以取到ddl2了但是不能联动了第一个选了后第二个就不变了!!!!大家帮忙再给出出点子..谢谢啦
解决方案七:
publicvoidbind_2(){DataSetds=getdata();ddlC.DataSource=ds;ddlC.DataTextField="type";ddlC.DataValueField="typeid";ddlC.DataBind();}===============改为:publicvoidbind_2(){DataSetds=getdata();for(inti=0;i<ds.Tables[0].Rows.Count;i++){object[]obj=ds.Tables[0].Rows[i].ItemArray;//假设你的type对应的是第1列,typeid对应的是第二列,则ddlC.Items.Add(newListItem(obj[0].ToString(),obj[1].ToString()));}}
解决方案八:
实现联动应写在ddl1的selectindexchanged事件里对阿
解决方案九:
你的代码不管从任何方面看,都是值得扔掉的,建议在开始学程序的时候就养成好的代码习惯.可读性差,无注释,随便乱命名,一大排不必要的if排列;简洁性差,写了不少废码;安全性差,可以写出100种方式通过注入攻击你的代码取得服务器控制权;维护性差,硬编码连接串,硬编码数据值(这里完全不必要)逻辑性差,事件代码(ddl1选择)没有写在对应的事件处理函数而写在页面加载里;封装性差,公开了不该公开的方法;资源效率差,用完数据库都不关连接的(虽然由于本页内对同一连接用了适配器,适配器有可能帮你关掉连接(也有可能不关)~~~~)自己开的连接自己第一时间关掉是基本要求.

时间: 2024-08-02 05:33:01

DropDownList取SelectValue值问题的相关文章

关于取前台值的问题.

问题描述 我在前台给服务器控件DropDownList1赋值了,我想在后台按钮中得到我所选择的值,用Request.Form["DropDownList1"].ToString();只能得到选择的Text值,我想得到所选的value值.高人指典! 解决方案 解决方案二:能得到选择的Text值,我想得到所选的value值.-----------什么意思?有什么区别?解决方案三:DropDownList1.SelectItem.Value解决方案四:DropDownList1.select

怎样取得datagrid中的dropdownlist中的值?

问题描述 假设我有一个如下的数据表DEPT_NOSHOP_NO53610536204351543518我现在有一个datagrid显示了这个数据表的值,这个datagrid第一列的值只有536和435,第二列我用的是一个嵌套在datagrid中的dropdownlist,我希望得到的是第一行的dropdownlist的值是(10,20),第二行的dropdownlist的值是(15,18).请问如何根据datagrid中的DEPT_NO中的值得到相应的dropdownlist中的值呢?谢谢 解决

html.dropdownlist选中的值如何在后台获取?急!!

问题描述 html页面:<span>年:@Html.DropDownList("Year")后台:privatevoidGetYear(){List<SelectListItem>yearList=newList<SelectListItem>();intfirstYear=DateTime.Now.Year;for(inti=0;i<10;i++){yearList.Add(newSelectListItem{Text=(firstYear-

JS获取DropDownList的value值与text值

 本篇文章主要是对JS获取DropDownList的value值与text值的示例代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 相关JS: 代码如下: <script type="text/javascript" language="javascript">     function SearchChange()     {         var ddl = document.getElementById("DropDownL

JS取request值以及自动执行使用示例

 在网页中JS函数自动执行常用三种方法,下面为大家详细介绍下JS取request值以及自动执行使用,需要的朋友可以参考下 在网页中JS函数自动执行常用三种方法  在HTML中的Head区域中,有如下函数:  代码如下: <SCRIPT LANGUAGE="JavaScript">  functionn MyAutoRun()  {  //以下是您的函数的代码,请自行修改先!  alert("函数自动执行哦!");  }  </SCRIPT> 

javaweb-麻烦大家帮我看看这样为什么不能取到值呢?

问题描述 麻烦大家帮我看看这样为什么不能取到值呢? <%@ page language="java" pageEncoding="UTF-8"%> <script type="text/javascript" language="JavaScript" src="${pageContext.request.contextPath}/script/calendar.js" charset=&

dropdownlist-asp.net DropDownList 绑定的值读出来都是类型

问题描述 asp.net DropDownList 绑定的值读出来都是类型 用DropDownList 动态绑定数据库某一列的值,读出来都是类型如下图所示: 该怎么解决啊? 解决方案 你确认是绑定的?怎么感觉你是动态增加的,如 dd.Items.Add(ListItem),然后ListItem的值设置错了,设置为DataRowView对象了,而不是数据行的值发你如何绑定的代码看看 解决方案二: 你绑定对么?ddl.DataSource = dt; ddl.DataTextField = "&qu

easyui-easyUI datagrid checkbox无法取到值

问题描述 easyUI datagrid checkbox无法取到值 $('#dg').datagrid({ url:'' pagination:true toolbar:'#tb' pageSize: 30 striped: true checkOnSelect: true singleSelect:false rownumbers:false columns:[ [ {field:'id'align:'center'checkbox:'true'formatter:function(vo){

pb-PB 问题。dec变量无法用select into 取到值

问题描述 PB 问题.dec变量无法用select into 取到值 帮朋友改PB6.5的程序,却碰到了一个好奇怪的问题 ! 代码里面的SELECT 语句,变量为decimal类型的,select into 无法取到值,而把dec类型改成double就没有问题.有人知道什么原因么? 运行环境:win7+pb6.5+sql2008r2 TRANSACTION SQLTMP SQLTMP = CREATE TRANSACTION SQLTMP.DBMS = "MSS Microsoft SQL Se