我做好了无刷新二级Dropdownlist联动,但有一个问题一直困扰着我.比如我做了两个页面,default.aspx用来显示目录,update.aspx用来显示和修改具体内容(二级Dropdownlist就放在这个页面).点击default.aspx的某一条记录进入update.aspx显示指定的内容,但是如何让Dropdownlist也显示指定的记录?谢谢!!有源码下载http://www.yuanshengkj.com/bbs/topic.asp?topic_id=1822&forum_id=26 各位请指教,谢谢!!
解决方案 »
- asp.net文件上传问题(一个页面获取路径,另一个页面上传)
- onchange 事件 不响应中文输入
- 提示“未将对象引用设置到对象的实例。”
- repeater理由有个checkbox。我为什么明明由check,但就得到的checked都是false
- 那有jamil4.3组件下载啊或者哪位大侠给我一个? 谢谢!
- 关于WebControls中的TreeView控件,哪位高手帮一下
- asp.net 3.5 提供AJAX服务 vs2008
- asp.net 点击页面按钮执行了服务器上的exe,但是在exe里读写的操作却不能进行,如何解决?
- 如何捕获在datagrid模版列中dropdownList控件的selectindexchange事件。
- DataGrid标题居中问题
- 关于控制文件下载的问题
- 用VS2005开发三层结构网站问题?
也就是说这个页面是现实具体的单条记录的详细信息?
----但是如何让Dropdownlist也显示指定的记录
这个页面上面有两个 dropdownlist,让这两个ddl现实这条记录所对应的信息?
如果是这种情况,你需要做如下
1、在update.aspx这个页面装载后,首先根据数据库信息先将第一个ddl在后台做绑定处理,并且将索引指向相应的item ,这些都可以在后台处理。
2、处理第二个ddl,既然无刷新的操作你都实现了,这里你需要利用javascript取得第一个ddl的value,并且根据这个value,填充第二个ddl的item,
,然后根绝数据库中的这条记录的信息,把ddl定位到相应的索引项上,都需要利用js来完成操作
if (!IsPostBack)
{
BindDc();
OleDbConnection conn = myConn();
string id = Request.QueryString["id"];
OleDbDataAdapter da = new OleDbDataAdapter("select * from info where id=" + id + "", conn);
DataTable dt = new DataTable();
da.Fill(dt);
title.Text = dt.Rows[0][2].ToString();
classid.SelectedValue = dt.Rows[0][4].ToString();
nclassid.SelectedValue = dt.Rows[0][3].ToString();
}
一级显示正确,二级显示就很乱,怎么回事?
this.DropDownList1.DataTextField = "ClassName";
this.DropDownList1.DataValueField = "ClassID";
this.DropDownList1.DataBind();
this.DropDownList1.Items.Insert(0,classM.ClassName);
/// <summary>
/// //数据绑定
/// </summary>
private void BindDc()
{
//第一个
string sql = @"select * from webclass where Parentid=0";
classid.DataSource = getDs(sql);
classid.DataTextField = "cname";
classid.DataValueField = "id";
classid.SelectedIndex = 1;
classid.DataBind();
if (classid.DataSource != null) classid.Attributes.Add("onchange", "showNext(this.options[selectedIndex].value,'nclassid');");
//可以先判断 DropDownList.SelectedItem.Value
//第二个
sql = @"select * from webclass where parentid=" + classid.SelectedItem.Value;
nclassid.DataSource = getDs(sql);
nclassid.DataTextField = "cname";
nclassid.DataValueField = "id";
classid.SelectedIndex = 2;
nclassid.DataBind();
}上面是你UPDate页里的绑定代码,注意你第二个,sql = @"select * from webclass where parentid=" + classid.SelectedItem.Value;你的classid刚绑定,并且没有指定SelectedItem,那classid.SelectedItem.Value就是classid里第一个项的值,所以第二个就乱被。解决方法,你可以考虑在BindDc()方法中接收一个classid的选定值。
调试一下,看看这个语句有没有返回数据。