怎么用c#写二级联动? 要求dropdownlist绑定两个表格的。
发布网友
发布时间:2022-04-27 12:18
我来回答
共5个回答
热心网友
时间:2022-04-27 13:47
这个设置大类表的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方法的第二个参数就是你去数据库里取得的结果,我这个是三层架构的,你看你自己的项目进行处理,传进去参数
热心网友
时间:2022-04-27 15:05
<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>
热心网友
时间:2022-04-27 16:40
这个你得写事件监听.选中表格 加载第二表格相应数据.
代码自己写.写不出问周围的人,这样深刻.我们写了也没意义
热心网友
时间:2022-04-27 18:31
用classTab的SelectedIndexChanged事件来关联stype就可以了,关联时把classTab的AutoPostBack属性设置为true.
在方法SelectedIndexChanged中实现的主要功能为:
将选订项的id绑定到xtype上。
主要Sql语句是"select * from xtype where cid=@cid"
其中@cid是classTab选中项的id.