我的cs页面代码:using System;
using System.Collections;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Xml;
namespace zxdby.sys
{
/// <summary>
/// gsjj_edit 的摘要说明。
/// </summary>
public class gsjj_edit : System.Web.UI.Page
{

public DataSet ds;
private SqlConnection conn=new SqlConnection();
public string strcity;
public string strquxian;
protected System.Web.UI.WebControls.DropDownList city;
protected System.Web.UI.WebControls.Button 提交;
protected System.Web.UI.WebControls.DropDownList quxian;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
city1();
quxian1();
try
{
Readtext();
}
catch
{
conn.Close();
}


}
private void OpenDatabase()
{
//连接数据库
conn.ConnectionString =ConfigurationSettings.AppSettings["strConnection"];
conn.Open();
}
public void Readtext()
{

OpenDatabase();
string strSql = "select top 1 * from 公司简介 where";
SqlDataAdapter Myadater = new SqlDataAdapter();
Myadater.SelectCommand = new SqlCommand(strSql, conn);
ds = new DataSet();
Myadater.Fill(ds,"公司简介");
DataRow dr;
dr=ds.Tables["公司简介"].Rows[0];
city.SelectedItem.Text=dr["所属地市"].ToString();
city.SelectedItem.Value=dr["所属地市"].ToString();

quxian.SelectedItem.Text=dr["所属城区"].ToString();
quxian.SelectedItem.Value=dr["所属城区"].ToString();
conn.Close(); }
public void Updata()
{   
OpenDatabase();
ds = new DataSet();
SqlDataAdapter Myadater = new SqlDataAdapter();
SqlCommandBuilder Mybuilder = new SqlCommandBuilder(Myadater);
string strSql = "select top 1 * from 公司简介";
Myadater.SelectCommand = new SqlCommand(strSql, conn);
Myadater.Fill(ds,"公司简介");
DataRow dr;

dr = ds.Tables["公司简介"].Rows[0];

    dr["所属地市"]=Request.Form["city"];
dr["所属城区"]=Request.Form["quxian"];

Myadater.Update(ds,"公司简介");
conn.Close();

String scriptString = "<script language=javascript>";        
scriptString += "alert('数据更新成功!');";                  
scriptString += "window.location='system.aspx';";              
scriptString += "</script>";                                 
if(!this.IsStartupScriptRegistered("Startup"))               
this.RegisterStartupScript("Startup", scriptString);
}

private void city1()
{
OpenDatabase();


  string sql = "select * from t城市 order by 编号";
SqlCommand myCommand = new SqlCommand(sql,conn);
  SqlDataAdapter myData = new SqlDataAdapter(myCommand);
  ds = new DataSet();
    myData.Fill(ds);
  this.city.DataSource = ds;
  this.city.DataValueField = "类型";
  this.city.DataTextField = "类型";
  this.city.DataBind();
conn.Close();
} private void quxian1()
{
OpenDatabase();
  string sql = "select * from t区县 order by 编号";
SqlCommand myCommand = new SqlCommand(sql,conn);
  SqlDataAdapter myData = new SqlDataAdapter(myCommand);
  ds = new DataSet();
    myData.Fill(ds);
  this.quxian.DataSource = ds;
  this.quxian.DataValueField = "类型";
  this.quxian.DataTextField = "类型";
  this.quxian.DataBind();
conn.Close();
}
private void 提交_Click(object sender, System.EventArgs e)
{

Updata();
} private void city_SelectedIndexChanged(object sender, System.EventArgs e)
{

} private void quxian_SelectedIndexChanged(object sender, System.EventArgs e)
{

}

}
}
以上是一个编辑页面,其中Readtext()是先读取出数据,Updata()是更新数据,现请教:问题一:在Readtext()有city.SelectedItem.Text=dr["所属地市"].ToString();
city.SelectedItem.Value=dr["所属地市"].ToString();

quxian.SelectedItem.Text=dr["所属城区"].ToString();
quxian.SelectedItem.Value=dr["所属城区"].ToString();我想实现的效果是,编辑的时候先让下拉列表默认为数据库中的值,比如:下拉列表本来的选项有
t城市表 t区县表AA      DD
BB      EE
CC      FF
如果数据库中的值是BB和FF的话,那么编辑的时候下拉列表的选项变为:
BB      FF                  BB       FF
AA      DD      或者        AA       DD
BB      EE                  CC       EE
CC      FF
可是按照我以上的读取方法的话,在编辑的时候,下拉列表却变成了:
BB      FF
BB      EE
CC      FF
也就是说,数据库中的值代替了原下拉列表的第一个选项,请问有什么方法解决?
问题二:还没能实现下拉列表的联动功能,比如说
t城市表     t区县表
城市A      城市A   区县A
城市B      城市A   区县B
城市C      城市B   区县C要实现效果:当我选择 城市A 的时候,在另一个下拉列表中会列出相应的选项 区县A 和 区县B,以前问过,可是很多人给我无刷新技术的,可是偶初学.NET,所以看不太明白,所以,不一定要无刷新的,只要能实现就行谢谢各位了,请指教!

解决方案 »

  1.   

    下拉列表的联动功能http://www.cnblogs.com/gwazy/archive/2005/03/02/111122.html用js 写的,
    没用xmlhttp
      

  2.   

    city.SelectedItem.Text=dr["所属地市"].ToString();
    city.SelectedItem.Value=dr["所属地市"].ToString();

    quxian.SelectedItem.Text=dr["所属城区"].ToString();
    quxian.SelectedItem.Value=dr["所属城区"].ToString();有问题
      

  3.   

    boytomato(深爱一人叫颖的女孩!) ,首先感谢您的回复,我看了,那是在js里面写上去的,我要的是读取数据库的
      

  4.   

    使用数据绑定只能使用
      this.quxian.DataSource = ds;
      this.quxian.DataValueField = "类型";
      this.quxian.DataTextField = "类型";
      this.quxian.DataBind();
    方式进行绑定。如果要改变选择的项,使用下面的方法:
    quxian.SelectedIndex = quxian.Items.IndexOf(quxian.Items.FindByValue(dr["所属城区"].ToString()))
      

  5.   

    呵,你要读数据库,那就只能用  xmlhttp 了....
    也可以用 websevice 实现....  http://www.cnblogs.com/gwazy/archive/2005/05/10/152312.aspx用 webservice 实现的无刷新联动demo http://www.cnblogs.com/Files/gwazy/WebService.rarwebform2.aspx就是调用页面....
    改一下调用 websevice中的联接字符串...
      

  6.   

    在city_SelectedIndexChanged
    中要写代码绑定quxian
    在对quxian绑定数据时,要根据选择的City进行SQL查询另外,City的AutoPostBack要设置为true
      

  7.   

    问题一嘛,一般偶素用循环先判断数据库中的那BB在下拉框里是第几个,然后用city.Item[].Selected=true,这样就么问题了
      

  8.   

    ddl1主
    ddl2次
    ddl1的AutoPostBack改为true
    private void DropDownList1_SelectedIndexChanged(object sender, System.EventArgs e)
    {
        重新给ddl2赋值
    }
      

  9.   

    fengfangfang() 
     xu770(我爱鱼儿)
    我把AutoPostBack改为true后,每选择一次的话,city又自动会到初始值了,是怎么回事?PowerDoll() 能说具体点吗?
      

  10.   

    private void Page_Load(object sender, System.EventArgs e)
    {if(!this.IsPostBack)  //加上它..... 
    {  
    city1();
    quxian1();
    try
    {
    Readtext(); //
    }
    catch
    {
    conn.Close();
    }
    }
      

  11.   

    engfangfang()
    xu770(我爱鱼儿)
    我把AutoPostBack改为true后,每选择一次的话,city又自动会到初始值了,是怎么回事?
    private void Page_Load(object sender, System.EventArgs e)
    {if(!this.IsPostBack) //加上它.....
    {
    city1();
    quxian1();
    try
    {
    Readtext(); //
    }
    catch
    {
    conn.Close();
    }
    }
      

  12.   

    已经能实现联动了,可是又出现问题了,Readtext(); 的时候,quxian就没有选项了`!!1
      

  13.   

    楼主,邮件已经发过去了,请查收[ 发送成功 ]
    邮件已通过反病毒引擎扫描 您已经成功将信发送到: [email protected]
      

  14.   

    第一个问题:quxian.Items.Insert(0,new ListItem("值","值"));插入一条新的选项第二个问题:public class gsjj_edit : System.Web.UI.Page
    {

    public DataSet ds;
    private SqlConnection conn=new SqlConnection();
    //public string strcity;
    public string strquxian;
    protected System.Web.UI.WebControls.DropDownList city;
    protected System.Web.UI.WebControls.Button 提交;
    protected System.Web.UI.WebControls.DropDownList quxian;

    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    city1();
    //quxian1();//去掉这个
    try
    {
    Readtext();
    }
    catch
    {
    conn.Close();
    }

    quxian1(city.SelectedItem.Value);//这里加
    }
    private void OpenDatabase()
    {
    //连接数据库
    conn.ConnectionString =ConfigurationSettings.AppSettings["strConnection"];
    conn.Open();
    }
    public void Readtext()
    {

    OpenDatabase();
    string strSql = "select top 1 * from 公司简介 where";
    SqlDataAdapter Myadater = new SqlDataAdapter();
    Myadater.SelectCommand = new SqlCommand(strSql, conn);
    ds = new DataSet();
    Myadater.Fill(ds,"公司简介");
    DataRow dr;
    dr=ds.Tables["公司简介"].Rows[0];
    city.SelectedItem.Text=dr["所属地市"].ToString();
    city.SelectedItem.Value=dr["所属地市"].ToString();

    quxian.SelectedItem.Text=dr["所属城区"].ToString();
    quxian.SelectedItem.Value=dr["所属城区"].ToString();
    conn.Close(); }
    public void Updata()
    {   
    OpenDatabase();
    ds = new DataSet();
    SqlDataAdapter Myadater = new SqlDataAdapter();
    SqlCommandBuilder Mybuilder = new SqlCommandBuilder(Myadater);
    string strSql = "select top 1 * from 公司简介";
    Myadater.SelectCommand = new SqlCommand(strSql, conn);
    Myadater.Fill(ds,"公司简介");
    DataRow dr;

    dr = ds.Tables["公司简介"].Rows[0];

        dr["所属地市"]=Request.Form["city"];
    dr["所属城区"]=Request.Form["quxian"];

    Myadater.Update(ds,"公司简介");
    conn.Close();

    String scriptString = "<script language=javascript>";        
    scriptString += "alert('数据更新成功!');";                  
    scriptString += "window.location='system.aspx';";              
    scriptString += "</script>";                                 
    if(!this.IsStartupScriptRegistered("Startup"))               
    this.RegisterStartupScript("Startup", scriptString);
    }

    private void city1()
    {
    OpenDatabase();


      string sql = "select * from t城市 order by 编号";
    SqlCommand myCommand = new SqlCommand(sql,conn);
      SqlDataAdapter myData = new SqlDataAdapter(myCommand);
      ds = new DataSet();
        myData.Fill(ds);
      this.city.DataSource = ds;
      this.city.DataValueField = "类型";
      this.city.DataTextField = "类型";
      this.city.DataBind();
    conn.Close();
    } private void quxian1(string strcity)//这里要改
    {
    OpenDatabase();
      string sql = "select * from t区县 order by 编号";
    SqlCommand myCommand = new SqlCommand(sql,conn);
      SqlDataAdapter myData = new SqlDataAdapter(myCommand);
      ds = new DataSet();
        myData.Fill(ds);
      this.quxian.DataSource = ds;
      this.quxian.DataValueField = "类型";
      this.quxian.DataTextField = "类型";
      this.quxian.DataBind();
    conn.Close();
    }
    private void 提交_Click(object sender, System.EventArgs e)
    {

    Updata();
    } private void city_SelectedIndexChanged(object sender, System.EventArgs e)
    {
    quxian1(city.SelectedItem.Text.ToString());//添加这句
    } private void quxian_SelectedIndexChanged(object sender, System.EventArgs e)
    {

    }

    }
    }