| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 776 人关注过本帖
标题:数据绑定的刷新问题
只看楼主 加入收藏
cydesign
Rank: 1
等 级:新手上路
帖 子:134
专家分:0
注 册:2006-11-2
收藏
 问题点数:0 回复次数:6 
数据绑定的刷新问题
有两个dropdownlist,都是读取数据库里面的内容的
一个读取系表,一个读取班表
我要实现的是,选择不同的系,第二个下拉列表就显示相对应的班级选择。
问题是,无论我怎么选择系,得到的班级都是初始的(因为没有更新)。
我应该在哪里怎么去加读取班表的函数呢?或者说我应该怎样才能实现选择不同的系都会对这个选择产生相应动作呢?
搜索更多相关主题的帖子: 绑定 数据 
2006-12-15 15:27
EdwardLyons
Rank: 1
等 级:新手上路
帖 子:254
专家分:0
注 册:2006-12-8
收藏
得分:0 
以下是引用cydesign在2006-12-15 15:27:41的发言:
有两个dropdownlist,都是读取数据库里面的内容的
一个读取系表,一个读取班表
我要实现的是,选择不同的系,第二个下拉列表就显示相对应的班级选择。
问题是,无论我怎么选择系,得到的班级都是初始的(因为没有更新)。
我应该在哪里怎么去加读取班表的函数呢?或者说我应该怎样才能实现选择不同的系都会对这个选择产生相应动作呢?

不是没有更新,是更新完了之后,程序又自动初始化了
在page_load()里面加上
if(!IsPostback)
{...}


遥望辽阔广远的星空,童年的心扉情不自禁敞开,与神秘的宇宙零距离对话。
2006-12-15 15:52
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 

ConnClass mycon = new ConnClass(); //实例化类

[CODE]绑定系
void BindSsmc()
{
string sqlstr = "select x_dm,x_mc from table1";
DataSet ds = null;
ds = mycon.myDataSet(sqlstr); //执行SQL语句并返回DataSet
this.ddp_ssmc.DataSource = ds; //给予数据源
this.ddp_ssmc.DataTextField = "x_mc"; //指定显示文本
this.ddp_ssmc.DataValueField = "x_dm"; //指定值文本
this.ddp_ssmc.DataBind(); //数据绑定
//*********添加自定義項选择Item*****************************
ListItem topItem = new ListItem("-------请选择宿舍-------", "0", true);
this.ddp_ssmc.Items.Add(topItem);
this.ddp_ssmc.SelectedIndex = this.ddp_ssmc.Items.Count - 1;
//***********************************************************
}[/CODE]

[CODE]当选择系时
protected void ddp_ssmc_SelectedIndexChanged(object sender, EventArgs e)
{
if (this.ddp_ssmc.SelectedItem.Text.Trim() != "-------请选择宿舍-------")
{
this.Label_ssmc.Visible = false;
string sqlstr = "select bj from table2 where x_dm='" + this.ddp_ssmc.SelectedValue.Trim().ToString() + "'";
DataSet ds = null;
ds = mycon.myDataSet(sqlstr); //执行SQL语句并返回DataSet
if (ds.Tables[0].Rows.Count > 0)
{
this.ddp_qsh.DataSource = ds; //给予数据源
this.ddp_qsh.DataTextField = "bj"; //指定显示文本
this.ddp_qsh.DataValueField = "bj"; //指定值文本
this.ddp_qsh.DataBind(); //数据绑定
//*********添加自定義項选择Item*******************************
ListItem topItem = new ListItem("-------请选择寝室号-------", "0", true);
this.ddp_qsh.Items.Add(topItem);
this.ddp_qsh.SelectedIndex = this.ddp_qsh.Items.Count - 1;
//*************************************************************
}
else
{
this.Label2.Text = "<script language='javascript'>alert('该宿舍楼还未分配寝室号码~!');</script>";
this.ddp_qsh.Items.Clear();
return;
}
}
}[/CODE]

ConnClass 为类中返回DataSet的方法
........
........

public DataSet myDataSet(string sqlstr)
{
DataSet ds = null;
try
{
SqlDataAdapter da = new SqlDataAdapter(sqlstr, myconn); //建立SqlDataAdapter对象
ds = new DataSet();
da.Fill(ds); // 填充数据集
}
catch (Exception exp)
{
Error = exp.Message;
return null;
}
return ds;
}

[此贴子已经被作者于2006-12-15 15:58:29编辑过]


飘过~~
2006-12-15 15:56
cydesign
Rank: 1
等 级:新手上路
帖 子:134
专家分:0
注 册:2006-11-2
收藏
得分:0 
以下是引用bygg在2006-12-15 15:56:08的发言:

ConnClass mycon = new ConnClass(); //实例化类

[CODE]绑定系
void BindSsmc()
{
string sqlstr = "select x_dm,x_mc from table1";
DataSet ds = null;
ds = mycon.myDataSet(sqlstr); //执行SQL语句并返回DataSet
this.ddp_ssmc.DataSource = ds; //给予数据源
this.ddp_ssmc.DataTextField = "x_mc"; //指定显示文本
this.ddp_ssmc.DataValueField = "x_dm"; //指定值文本
this.ddp_ssmc.DataBind(); //数据绑定
//*********添加自定義項选择Item*****************************
ListItem topItem = new ListItem("-------请选择宿舍-------", "0", true);
this.ddp_ssmc.Items.Add(topItem);
this.ddp_ssmc.SelectedIndex = this.ddp_ssmc.Items.Count - 1;
//***********************************************************
}[/CODE]

[CODE]当选择系时
protected void ddp_ssmc_SelectedIndexChanged(object sender, EventArgs e)
{
if (this.ddp_ssmc.SelectedItem.Text.Trim() != "-------请选择宿舍-------")
{
this.Label_ssmc.Visible = false;
string sqlstr = "select bj from table2 where x_dm='" + this.ddp_ssmc.SelectedValue.Trim().ToString() + "'";
DataSet ds = null;
ds = mycon.myDataSet(sqlstr); //执行SQL语句并返回DataSet
if (ds.Tables[0].Rows.Count > 0)
{
this.ddp_qsh.DataSource = ds; //给予数据源
this.ddp_qsh.DataTextField = "bj"; //指定显示文本
this.ddp_qsh.DataValueField = "bj"; //指定值文本
this.ddp_qsh.DataBind(); //数据绑定
//*********添加自定義項选择Item*******************************
ListItem topItem = new ListItem("-------请选择寝室号-------", "0", true);
this.ddp_qsh.Items.Add(topItem);
this.ddp_qsh.SelectedIndex = this.ddp_qsh.Items.Count - 1;
//*************************************************************
}
else
{
this.Label2.Text = "<script language='javascript'>alert('该宿舍楼还未分配寝室号码~!');</script>";
this.ddp_qsh.Items.Clear();
return;
}
}
}[/CODE]

ConnClass 为类中返回DataSet的方法
........
........

public DataSet myDataSet(string sqlstr)
{
DataSet ds = null;
try
{
SqlDataAdapter da = new SqlDataAdapter(sqlstr, myconn); //建立SqlDataAdapter对象
ds = new DataSet();
da.Fill(ds); // 填充数据集
}
catch (Exception exp)
{
Error = exp.Message;
return null;
}
return ds;
}



太感谢了!斑竹你真好!

2006-12-15 17:15
stggg
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2006-7-21
收藏
得分:0 

1、
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
//要实现的代码
}
}
2、
ddp_ssmc的AutoPostBack设为true。


2006-12-15 17:21
cydesign
Rank: 1
等 级:新手上路
帖 子:134
专家分:0
注 册:2006-11-2
收藏
得分:0 

问题又来了
this.Label_getDept.Visible = false;

它提示Label.getDept没定义,应该怎么定义呢?

[此贴子已经被作者于2006-12-15 21:53:14编辑过]

2006-12-15 21:29
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 
以下是引用cydesign在2006-12-15 21:29:32的发言:

问题又来了
this.Label_getDept.Visible = false;

它提示Label.getDept没定义,应该怎么定义呢?



要么就是你页面上还没有这个控件,要么就是你没有改名字.


飘过~~
2006-12-15 22:10
快速回复:数据绑定的刷新问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.043127 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved