读书人

关于dropdownlist控件靠山代码整合

发布时间: 2013-09-05 16:02:06 作者: rapoo

关于dropdownlist控件后台代码整合
以下是我的代码哦,我总感觉重复性好多,希望大家能帮我把代码整合下,我也好参考学习一下哦
string strCon = ConfigurationManager.AppSettings["MsSql"];
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindUserList();

ddlGroupIDBind();
ddlU_CNameBind();
ddlUserIDBind();

}
}
//部门下拉框
protected void ddlGroupIDBind()
{
string sqlSel = "select GroupID,G_CName from sys_Group where G_ParentID !=0 order by GroupID ";
SqlConnection con = new SqlConnection(strCon); ;
con.Open();
SqlDataAdapter sda = new SqlDataAdapter(sqlSel, con);
DataSet ds = new DataSet();
sda.Fill(ds);
ddlGroupID.DataSource = ds.Tables[0].DefaultView;
ddlGroupID.DataTextField = "G_CName";
ddlGroupID.DataValueField = "GroupID";
ddlGroupID.DataBind();
}
//员工姓名下拉框
protected void ddlU_CNameBind()
{
string sqlSel = "select UserID,U_CName from sys_User where U_GroupID='" + ddlGroupID.SelectedValue + "' order by UserID ";


SqlConnection con = new SqlConnection(strCon);
con.Open();
SqlDataAdapter sda = new SqlDataAdapter(sqlSel, con);
DataSet ds = new DataSet();
sda.Fill(ds);
ddlUCName.DataSource = ds.Tables[0].DefaultView;
ddlUCName.DataTextField = "U_CName";
ddlUCName.DataValueField = "U_CName";
ddlUCName.DataBind();
}

//员工编号
protected void ddlUserIDBind()
{
string sqlSel = "select UserID from sys_User where U_CName='" + ddlUCName.SelectedValue + "' order by UserID ";
SqlConnection con = new SqlConnection(strCon);
con.Open();
SqlDataAdapter sda = new SqlDataAdapter(sqlSel, con);
DataSet ds = new DataSet();
sda.Fill(ds);
ddlUserID.DataSource = ds.Tables[0].DefaultView;
ddlUserID.DataTextField = "UserID";
ddlUserID.DataValueField = "UserID";
ddlUserID.DataBind();
}

//部门下拉框和姓名下拉框的二级联动触发事件
protected void ddlGroupID_SelectedIndexChanged(object sender, EventArgs e)
{
this.ddlUCName.Items.Clear();


this.ddlUserID.Items.Clear();
ddlU_CNameBind();
ddlUserIDBind();
}

//姓名下拉框和员工编号下拉框的二级联动触发事件
protected void ddlUCName_SelectedIndexChanged(object sender, EventArgs e)
{
this.ddlUserID.Items.Clear();
ddlUserIDBind();
}
以上是我的后台代码,总感觉重复性有点多,希望大家能告诉我下,如果整合简化会好些哦 查询方法写成一个整的,没分层的么?怎么全部写在表示层?
[解决办法]
string sqlSel = "select GroupID,G_CName from sys_Group where G_ParentID !=0 order by GroupID ";
SqlConnection con = new SqlConnection(strCon); ;
con.Open();
SqlDataAdapter sda = new SqlDataAdapter(sqlSel, con);
DataSet ds = new DataSet();
sda.Fill(ds);
这种数据库连接的代码重复写了好多次,可以封装到一个数据库操作类里面,定义一套方法访问。

[解决办法]
非这个莫属:
http://www.cnblogs.com/insus/archive/2013/01/28/2880618.html


see also:
http://www.cnblogs.com/insus/archive/2013/06/10/3130925.html

关于dropdownlist控件靠山代码整合
[解决办法]
代码全部写在页面上,只是效果达到罢了
------解决方案--------------------


第二步,可以定义一个封装绑定的方法,直接传sql,displayvalue,membervalue,控件名,就可以绑定dropdownlist。
[解决办法]
比如员工编号:


[解决办法]
  string sqlSel = "select  GroupID,G_CName from sys_Group where G_ParentID !=0  order by GroupID ";
SqlConnection con = new SqlConnection(strCon); ;


con.Open();
SqlDataAdapter sda = new SqlDataAdapter(sqlSel, con);
DataSet ds = new DataSet();
sda.Fill(ds);



类似于这样的代码,可以分一层去写。

读书人网 >asp.net

热点推荐