100分,问两个问题!!

gxsz 2005-06-29 09:13:14
我的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,所以看不太明白,所以,不一定要无刷新的,只要能实现就行

谢谢各位了,请指教!
...全文
389 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
fphuang 2005-06-29
  • 打赏
  • 举报
回复
客气,互相帮助吗
gxsz 2005-06-29
  • 打赏
  • 举报
回复
谢谢楼上的朋友
fphuang 2005-06-29
  • 打赏
  • 举报
回复
楼主,邮件已经发过去了,请查收

[ 发送成功 ]
邮件已通过反病毒引擎扫描

您已经成功将信发送到: gxszkj@126.com
gxsz 2005-06-29
  • 打赏
  • 举报
回复
谢谢,gxszkj@126.com
fphuang 2005-06-29
  • 打赏
  • 举报
回复
楼主留个邮箱,我可以给你发个现成的四级无刷新联动的例子
gxsz 2005-06-29
  • 打赏
  • 举报
回复
已经能实现联动了,可是又出现问题了,Readtext(); 的时候,quxian就没有选项了`!!1
boytomato 2005-06-29
  • 打赏
  • 举报
回复
engfangfang()
xu770(我爱鱼儿)
我把AutoPostBack改为true后,每选择一次的话,city又自动会到初始值了,是怎么回事?


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



if(!this.IsPostBack) //加上它.....
{
city1();
quxian1();
try
{
Readtext(); //
}
catch
{
conn.Close();
}
}
boytomato 2005-06-29
  • 打赏
  • 举报
回复
private void Page_Load(object sender, System.EventArgs e)
{



if(!this.IsPostBack) //加上它.....
{
city1();
quxian1();
try
{
Readtext(); //
}
catch
{
conn.Close();
}
}
gxsz 2005-06-29
  • 打赏
  • 举报
回复
怎么又没人来了?
gxsz 2005-06-29
  • 打赏
  • 举报
回复
fengfangfang()
xu770(我爱鱼儿)
我把AutoPostBack改为true后,每选择一次的话,city又自动会到初始值了,是怎么回事?

PowerDoll() 能说具体点吗?
xu770 2005-06-29
  • 打赏
  • 举报
回复
ddl1主
ddl2次
ddl1的AutoPostBack改为true
private void DropDownList1_SelectedIndexChanged(object sender, System.EventArgs e)
{
重新给ddl2赋值
}
PowerDoll 2005-06-29
  • 打赏
  • 举报
回复
问题一嘛,一般偶素用循环先判断数据库中的那BB在下拉框里是第几个,然后用city.Item[].Selected=true,这样就么问题了
fengfangfang 2005-06-29
  • 打赏
  • 举报
回复
在city_SelectedIndexChanged
中要写代码绑定quxian
在对quxian绑定数据时,要根据选择的City进行SQL查询

另外,City的AutoPostBack要设置为true
boytomato 2005-06-29
  • 打赏
  • 举报
回复
呵,你要读数据库,那就只能用 xmlhttp 了....
也可以用 websevice 实现....

http://www.cnblogs.com/gwazy/archive/2005/05/10/152312.aspx

用 webservice 实现的无刷新联动

demo

http://www.cnblogs.com/Files/gwazy/WebService.rar

webform2.aspx就是调用页面....
改一下调用 websevice中的联接字符串...
fengfangfang 2005-06-29
  • 打赏
  • 举报
回复
使用数据绑定只能使用
  this.quxian.DataSource = ds;
  this.quxian.DataValueField = "类型";
  this.quxian.DataTextField = "类型";
  this.quxian.DataBind();
方式进行绑定。

如果要改变选择的项,使用下面的方法:
quxian.SelectedIndex = quxian.Items.IndexOf(quxian.Items.FindByValue(dr["所属城区"].ToString()))
gxsz 2005-06-29
  • 打赏
  • 举报
回复
boytomato(深爱一人叫颖的女孩!) ,首先感谢您的回复,我看了,那是在js里面写上去的,我要的是读取数据库的
gxsz 2005-06-29
  • 打赏
  • 举报
回复
那问题一呢?
fengfangfang 2005-06-29
  • 打赏
  • 举报
回复
city.SelectedItem.Text=dr["所属地市"].ToString();
city.SelectedItem.Value=dr["所属地市"].ToString();

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

有问题


boytomato 2005-06-29
  • 打赏
  • 举报
回复
下拉列表的联动功能

http://www.cnblogs.com/gwazy/archive/2005/03/02/111122.html

用js 写的,
没用xmlhttp
aspme 2005-06-29
  • 打赏
  • 举报
回复
第一个问题: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)
{

}

}
}
加载更多回复(1)

62,074

社区成员

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

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

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

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