asp.net里面dropdownlist的数据绑定功能(使用泛型集合)

2024-12-05 04:57:40
推荐回答(4个)
回答1:

首先通过
DropDownList1.DataSource = list;这个绑定一个泛型list
DropDownList1.DataTextField = "name";这是你要显视的那个字段
DropDownList1.DataValueField = "id";这是一个隐藏的ID值,就是通过他去找DropDownList2
的值.
然后你通过SelectedIndexChanged这个事件,用string s = DropDownList1.SelectedValue;
找出你隐藏的那个id值,
这样子就可以实现了~~
不过要记得把DropDownList1的那个AutoPostBack属性设为true

回答2:

就以你的事列为准,前台我假如有两个下拉框(DropDownList),一个班级(Dl_Grade),另一个为学生(Dl_Student)。
要求:当用户班级下拉框发生改变的时候,学生下拉框也随之改变。(采用泛型数据)
实现:
1。构建泛型类
2。填充泛型数据源
3。绑定下拉框
4。实现Chang事件

为了你这分,刚才写了下:
泛型类:

///


/// 定义一个年级学生类,便于泛型使用
///

public class GradeStudent
{

//年级
private string grade;
public string Grade
{
get { return grade; }
set { grade = value; }
}
//学生(姓名)
private string student;
public string Student
{
get { return student; }
set { student = value; }
}

public GradeStudent(string _grade, string _student)
{
this.grade = _grade;
this.student = _student;
}

}

填充数据源

///
/// 获取数据源
///

///
public List GetList()
{
List _GradeStudent = new List();
_GradeStudent.Add(new GradeStudent("一年级", "张三"));
_GradeStudent.Add(new GradeStudent("一年级", "李四"));
_GradeStudent.Add(new GradeStudent("一年级", "王五"));

_GradeStudent.Add(new GradeStudent("二年级", "李秀"));
_GradeStudent.Add(new GradeStudent("二年级", "余娟"));
_GradeStudent.Add(new GradeStudent("二年级", "刘丽丽"));
_GradeStudent.Add(new GradeStudent("二年级", "胡小平"));

_GradeStudent.Add(new GradeStudent("三年级", "我一人"));

_GradeStudent.Add(new GradeStudent("四年级", "小强"));
_GradeStudent.Add(new GradeStudent("四年级", "黑娃"));
_GradeStudent.Add(new GradeStudent("四年级", "小白"));
_GradeStudent.Add(new GradeStudent("四年级", "吴铭志"));
_GradeStudent.Add(new GradeStudent("四年级", "随便吹"));

return _GradeStudent;

}

填充下拉框

///
/// 绑定年级下拉框
///

private void SetGrade()
{
//设置班级
foreach (GradeStudent grade in GetList())
{
if (IsOk(grade.Grade))
Gr.Add(grade.Grade);
}
Dl_Grade.DataSource = Gr;
Dl_Grade.DataBind();

}
///
/// 绑定学生下拉框
///

private void SetStudent()
{
//设置姓名下拉框
Gr.Clear();
foreach (GradeStudent grade in GetList())
{
if (grade.Grade == Dl_Grade.SelectedValue)
{
Gr.Add(grade.Student);
}
}
Dl_Student.DataSource = Gr;
Dl_Student.DataBind();
}

用到判断方法:

///
/// 年级重复筛选
///

///
///
private bool IsOk(string s)
{
foreach (string Str in Gr)
{
if (Str == s)
return false;
}
return true;
}

初始时:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//初始
SetGrade();
SetStudent();
}
}

注:全局泛型变量

//定义全局泛型变量,用来做数据源
List Gr = new List();

年级下拉框事件

//动态变化事件
protected void Dl_Grade_SelectedIndexChanged(object sender, EventArgs e)
{
SetStudent();
}

回答3:

对应的前台代码:




绝版猪头仔的问题服务事例:

年级:


学生:





注意:年级下拉框AutoPostBack="True"事件为即时回传

这种类型仅仅为。NET的。

如果你想像大型站点一样的无刷新,请采用AJAX方式,后台代码大致如此。
前台用JAVASCRIPT调用xmlhttp实现无刷新与域内后台交互

回答4:

这个一般不是直接使用数据绑定的,一般都是使用代码去生成第二个(即dropdownlist2)中的值~