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,所以看不太明白,所以,不一定要无刷新的,只要能实现就行
谢谢各位了,请指教!