在前段时间我做两个listbox之间传值或是参数,选择其中某几项传到另外一个listbox中。当时在网上搜集了好多这样的列子,可是都不是很完美的,而且代码需要写很多很多,效果实现的也不是很好!
经过我个人研究之后,我总结到一个好的办法,其实这个办法运用到dropdownlist或是别的只要有items中的都可以运用,给大家提供一个思路或是灵感:
protected DateTime ShowTime;
public string constr;
public string constr_xxzx;
protected string strshuizha;
public string strdata;
public string strzhazhan;
public string strzzname;
public int sum;
protected string url;
System.Data.DataTable myDataTable;
protected System.Data.DataTable dt;
protected void Page_Load(object sender, EventArgs e)
{
constr = System.Configuration.ConfigurationSettings.AppSettings.Get("ConnectionString");
constr_xxzx = System.Configuration.ConfigurationSettings.AppSettings.Get("sz_xxzx");
if (!(Page.IsPostBack))
{
//给ddlzz绑定数据
bindDdzz();
//给SourceFile
addsfile();
//给默认文本填写
addcontent();
}
}
private void CreateTb()
{
//dt =new System.Data.DataTable();
//dt.Columns.Add(new DataColumn("序号", typeof(System.String)));
//for (int i = 0; i < TargetFile.Items.Count; i++)
//{
// string strtf = TargetFile.Items[i].Text;
// dt.Columns.Add(new DataColumn(strtf, typeof(System.String)));
//}
//strshuizha = "select ";
//for (int i = 0; i < TargetFile.Items.Count; i++)
//{
// if (i == TargetFile.Items.Count - 1)
// {
// strshuizha += TargetFile.Items[i].Value;
// }
// else
// {
// strshuizha += TargetFile.Items[i].Value + ",";
// }
//}
//strshuizha += " from dataset where TIME_STAMP >=" + Convert.ToDateTime(tbxprevious.Text) + " and TIME_STAMP <=" + Convert.ToDateTime(tbxnext.Text) + " order by TIME_STAMP desc";
//System.Data.DataTable dtTemp = (new LOGIC.DataAccessOra(constr_xxzx)).RunOracleDT(strshuizha);
//if (dtTemp.Rows.Count != 0)
//{
// for (int i = 0; i < dtTemp.Rows.Count; i++)
// {
// for (int j = 0; j < TargetFile.Items.Count; j++)
// {
// dt.Rows[i][j + 1] = dtTemp.Rows[i][j].ToString();
// }
// }
// for (int i = 0; i < dtTemp.Rows.Count; i++)
// {
// dt.Rows[i][0] = Convert.ToString(i + 1);
// }
//}
}
//--------------------------------------------Mondify By LiFuyun------------------------------------------------------------//
/// <summary>
/// 数据绑定
/// </summary>
private void Binddata()
{
//GridView1.DataKeyNames = new string[] { "序号" };
//GridView1.DataSource = dt;
//GridView1.DataBind();
}
/// <summary>
/// 添加默认的时间段、标题、备注等
/// </summary>
private void addcontent()
{
ShowTime = DateTime.Now;
tbxprevious.Text = ShowTime.Year.ToString() + "-" + ShowTime.Month.ToString() + "-" + ShowTime.Day.ToString() + " 00:00:00";
tbxnext.Text = ShowTime.ToString();
tbxtitle.Text = ddlzz.SelectedItem.Text + "时间段详细表";
tbxbz.Text = "时间是从" + tbxprevious.Text + "至" + tbxnext.Text + "闸站详细数据情况表";
}
/// <summary>
/// 给DropDownList闸站点绑定数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void bindDdzz()
{
string str = "select STATION_ID,水闸名称 from BS_SHUIZ2";
SqlConnection sqlconn = new SqlConnection(constr);
SqlDataAdapter myda = new SqlDataAdapter(str, sqlconn);
DataSet ds = new DataSet();
myda.Fill(ds, "BS_SHUIZ2");
ddlzz.DataSource = ds.Tables["BS_SHUIZ2"].DefaultView;
ddlzz.DataTextField = "水闸名称";
ddlzz.DataValueField = "STATION_ID";
ddlzz.DataBind();
}
/// <summary>
/// 给SourceFiled的listbox加载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void addsfile()
{
string str1 = "select ziduan,name from BS_zhaidduizhao";
SqlConnection sqlconn1 = new SqlConnection(constr);
SqlDataAdapter myda1 = new SqlDataAdapter(str1, sqlconn1);
DataSet ds1 = new DataSet();
myda1.Fill(ds1, "BS_zhaidduizhao");
SourceFile.DataSource = ds1.Tables["BS_zhaidduizhao"].DefaultView;
SourceFile.DataTextField = "name";
SourceFile.DataValueField = "ziduan";
SourceFile.DataBind();
}
/// <summary>
/// 全部添加
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void addall_Click(object sender, EventArgs e)
{
foreach (ListItem item in SourceFile.Items)
{
TargetFile.Items.Add(item);
item.Selected = false;
}
foreach (ListItem item in TargetFile.Items)
{
SourceFile.Items.Remove(item);
}
}
/// <summary>
/// 全部去掉
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void plusall_Click1(object sender, EventArgs e)
{
foreach (ListItem item in TargetFile.Items)
{
SourceFile.Items.Add(item);
item.Selected = false;
}
foreach (ListItem item in SourceFile.Items)
{
TargetFile.Items.Remove(item);
}
}
/// <summary>
/// 添加选中项
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void addselected_Click(object sender, EventArgs e)
{
foreach (ListItem item in SourceFile.Items)
{
if (item.Selected == true)
{
TargetFile.Items.Add(item);
item.Selected = false;
}
}
foreach (ListItem item in TargetFile.Items)
{
SourceFile.Items.Remove(item);
}
}
/// <summary>
/// 去掉选择项
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void plusselected_Click(object sender, EventArgs e)
{
foreach (ListItem item in TargetFile.Items)
{
if (item.Selected == true)
{
SourceFile.Items.Add(item);
item.Selected = false;
}
}
foreach (ListItem item in SourceFile.Items)
{
TargetFile.Items.Remove(item);
}
}
//------------------------------------------------END--------------------------------------------------------------------//
这是我自己在做项目中实践的方法。经过我个人项目中的实践!
给大家一个思路去想,还有什么不明白的可以联系我。点击LiFuyun.NET可以发邮件给我。
或是到我的QQ空间给我留言:点击飘逸的QQ空间(蓝色·深海)