怎么用c#写二级联动? 要求dropdownlist绑定两个表格的。
产品大类表classtab,字段id,class。产品小类表xtype,字段xtypeid,xtype,cid。cid是对应classtab表的id。产品大款式表styl...
产品大类表classtab,字段id,class。
产品小类表xtype,字段xtypeid,xtype,cid。cid是对应classtab表的id。
产品大款式表styletab,字段id,style。
产品小款式表xstyle,字段xstyleid,xstyle,sid。sid是对应styletab表的id。
前台是这样的:
dropdownlist1的ID为classTab,dropdownlist2的ID为xtype。
还有个Button用来提交的,ID为btnsubmit。
dropdownlist3的ID为styleTab, dropdownlist4的ID为style。
怎么写这个联动? 调试可以的话分数可以追加!
急等。。。
请不要用JavaScript和Ajax,我没装Ajax控件,而且我的是.net2.0。
我要c#代码。JavaScript是无刷新的。而且看我的题目再答题谢谢。不要搬来一个例子,然后让我改。
有的例子的类还是自己定义好的,这叫我怎么写? 展开
产品小类表xtype,字段xtypeid,xtype,cid。cid是对应classtab表的id。
产品大款式表styletab,字段id,style。
产品小款式表xstyle,字段xstyleid,xstyle,sid。sid是对应styletab表的id。
前台是这样的:
dropdownlist1的ID为classTab,dropdownlist2的ID为xtype。
还有个Button用来提交的,ID为btnsubmit。
dropdownlist3的ID为styleTab, dropdownlist4的ID为style。
怎么写这个联动? 调试可以的话分数可以追加!
急等。。。
请不要用JavaScript和Ajax,我没装Ajax控件,而且我的是.net2.0。
我要c#代码。JavaScript是无刷新的。而且看我的题目再答题谢谢。不要搬来一个例子,然后让我改。
有的例子的类还是自己定义好的,这叫我怎么写? 展开
4个回答
展开全部
这个设置大类表的dropdownlist的回传属性为真,先绑定这个下拉列表,然后在Tab的Selectedchange事件里根据Tab的选中值去绑定小表的下拉框.这个不需要类啊,只需要数据库的操作
给你一个例子吧,刚写的
前台
<div style="margin: 5px auto; width: 90%; vertical-align: middle;">
<table>
<tr>
<td>
表分类选择 <asp:DropDownList runat="server" ID="ddlTabCategory" AutoPostBack="True" OnSelectedIndexChanged="ddlTabCategory_SelectedIndexChanged">
</asp:DropDownList></td>
<td>
具体表选择
<asp:DropDownList runat="server" ID="ddlTabDetail" AutoPostBack="True" OnSelectedIndexChanged="ddlTabDetail_SelectedIndexChanged">
</asp:DropDownList></td>
</tr>
</table>
</div>
后台
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ddlBind(this.ddlTabCategory, TableCategoryInfo.getCategoryInfo(), "TableCategoryName", "TableCategoryId");
}
}
#region 绑定表分类信息和具体表名称
//绑定分类
protected void ddlTabCategory_SelectedIndexChanged(object sender, EventArgs e)
{
ddlBind(this.ddlTabDetail, TableDetailInfo.getDetailsByCategoryId(this.ddlTabCategory.SelectedValue), "TableName", "TableDetailId");
}
/// <summary>
/// 绑定下拉列表
/// </summary>
private static void ddlBind(object sender, DataTable dt, string name, string id)
{
DropDownList ddl = sender as DropDownList;
ddl.DataTextField = name;
ddl.DataValueField = id;
DataRow newrow = dt.NewRow();
newrow[name] = "请选择一项";
newrow[id] = 0;
dt.Rows.InsertAt(newrow, 0);
ddl.DataSource = dt;
ddl.DataBind();
}
#endregion
ddlBind方法的第二个参数就是你去数据库里取得的结果,我这个是三层架构的,你看你自己的项目进行处理,传进去参数
给你一个例子吧,刚写的
前台
<div style="margin: 5px auto; width: 90%; vertical-align: middle;">
<table>
<tr>
<td>
表分类选择 <asp:DropDownList runat="server" ID="ddlTabCategory" AutoPostBack="True" OnSelectedIndexChanged="ddlTabCategory_SelectedIndexChanged">
</asp:DropDownList></td>
<td>
具体表选择
<asp:DropDownList runat="server" ID="ddlTabDetail" AutoPostBack="True" OnSelectedIndexChanged="ddlTabDetail_SelectedIndexChanged">
</asp:DropDownList></td>
</tr>
</table>
</div>
后台
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ddlBind(this.ddlTabCategory, TableCategoryInfo.getCategoryInfo(), "TableCategoryName", "TableCategoryId");
}
}
#region 绑定表分类信息和具体表名称
//绑定分类
protected void ddlTabCategory_SelectedIndexChanged(object sender, EventArgs e)
{
ddlBind(this.ddlTabDetail, TableDetailInfo.getDetailsByCategoryId(this.ddlTabCategory.SelectedValue), "TableName", "TableDetailId");
}
/// <summary>
/// 绑定下拉列表
/// </summary>
private static void ddlBind(object sender, DataTable dt, string name, string id)
{
DropDownList ddl = sender as DropDownList;
ddl.DataTextField = name;
ddl.DataValueField = id;
DataRow newrow = dt.NewRow();
newrow[name] = "请选择一项";
newrow[id] = 0;
dt.Rows.InsertAt(newrow, 0);
ddl.DataSource = dt;
ddl.DataBind();
}
#endregion
ddlBind方法的第二个参数就是你去数据库里取得的结果,我这个是三层架构的,你看你自己的项目进行处理,传进去参数
展开全部
<select id="dept_lv" onchange="changeLv()"><option selected>---请选择---</option></select>
<select id="dept_pre"><option selected>---请选择---</option>
</select>
2个select
<script type="text/javascript">
window.onload=function()
{
var listcode = new Array();
listcode="从后台调用得到的一个数组,我是用AJAX.DLL"
var len = list.length;
var b = document.getElementById("dept_lv");
for(i=0;i<len;i++)
{
b.options.add(new Option(listcode[i],listcode[i]));
}
}
function changeLv()
{
var listcode = new Array();
var b = document.getElementById("dept_pre");
var lv = document.getElementById("dept_lv").value;//获得第一个select选择的值
list = "后台得到数组";//通过lv这个条件得到的。
var len = list.length;
b.length = 1;//让select保留第一个option
for(i=0;i<len;i++)
{
b.options.add(new Option(list[i],list[i]));
}
}
</script>
<select id="dept_pre"><option selected>---请选择---</option>
</select>
2个select
<script type="text/javascript">
window.onload=function()
{
var listcode = new Array();
listcode="从后台调用得到的一个数组,我是用AJAX.DLL"
var len = list.length;
var b = document.getElementById("dept_lv");
for(i=0;i<len;i++)
{
b.options.add(new Option(listcode[i],listcode[i]));
}
}
function changeLv()
{
var listcode = new Array();
var b = document.getElementById("dept_pre");
var lv = document.getElementById("dept_lv").value;//获得第一个select选择的值
list = "后台得到数组";//通过lv这个条件得到的。
var len = list.length;
b.length = 1;//让select保留第一个option
for(i=0;i<len;i++)
{
b.options.add(new Option(list[i],list[i]));
}
}
</script>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个你得写事件监听.选中表格 加载第二表格相应数据.
代码自己写.写不出问周围的人,这样深刻.我们写了也没意义
代码自己写.写不出问周围的人,这样深刻.我们写了也没意义
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用classTab的SelectedIndexChanged事件来关联stype就可以了,关联时把classTab的AutoPostBack属性设置为true.
在方法SelectedIndexChanged中实现的主要功能为:
将选订项的id绑定到xtype上。
主要Sql语句是"select * from xtype where cid=@cid"
其中@cid是classTab选中项的id.
在方法SelectedIndexChanged中实现的主要功能为:
将选订项的id绑定到xtype上。
主要Sql语句是"select * from xtype where cid=@cid"
其中@cid是classTab选中项的id.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询