c#会话值按下拉列表显示

时间:2012-06-08 05:27:45

标签: c# .net session

我试图通过下拉列表显示会话值。这就是我所制作的代码,但它不能很好地工作。纠正我

    //session created

public void SAN()
        {
            cn.Open();
            string sq = "select  Sitealiasname from tbl_Sitemaster where sitename in (select sitename from tbl_emploeedetails where employeestatus='L' and employeeid='" + Session["EMPID"].ToString() + "') and    status='A' order by Sitealiasname asc";
            SqlCommand d = new SqlCommand(sq, cn);
            SqlDataReader r;
            r = d.ExecuteReader();
            while (r.Read())
            {
                Label4.Text = r["Sitealiasname"].ToString().Trim();
                Session["Sitealiasname"] = Label4.Text;
            }

            cn.Close();

        }


    //call the session to dropdownlist
     protected void Page_Load(object sender, EventArgs e)
        {
            ddlsite.Text = Session["Sitealiasname"].ToString();
    }

5 个答案:

答案 0 :(得分:1)

你可以尝试

对于SAN功能使用

    List<String> sitenames=null;
    using (DataReader  r = d.ExecuteReader())
    {    
       sitenames = r.AutoMap<string>().ToList();
    }
    Session["Sitealiasname"] = sitenames;

对于Binding to Dropdownlist,您可以使用

    ddlsite.DataSource = Session["Sitealiasname"];
    ddlsite.DataBind();

答案 1 :(得分:0)

在页面加载中尝试使用此代码将绑定会话值绑定到下拉列表

ddlsite.Items.Add(Session["Sitealiasname"].Tostring());

答案 2 :(得分:0)

Dropdownlist没有您在此处使用的text属性。您必须首先填充下拉列表,然后选择要显示的值。

首先,你应该在下拉列表中添加项目      items.add()

下拉列表所支持的属性列表 link

答案 3 :(得分:0)

试试这个

//添加此行 ------编辑-------------

using System.Linq;

使用System.Collections.Generic;

public void SAN()
    {
        cn.Open();
        string sq = "select  Sitealiasname from tbl_Sitemaster where sitename in (select `sitename from tbl_emploeedetails where employeestatus='L' and employeeid='" + Session["EMPID"].ToString() + "') and    status='A' order by Sitealiasname asc";`
        SqlCommand d = new SqlCommand(sq, cn);
        SqlDataReader r;
        r = d.ExecuteReader();
 List<string> sitnames = new  List<string>();
        while (r.Read())
        {
            sitename.Add(r["Sitealiasname"].ToString().Trim());
        }

        cn.Close();
Session["Sitealiasname"] = sitename
    }



 protected void Page_Load(object sender, EventArgs e)
    {
///Bind data here


if(Session["Sitealiasname"] != null){
       ddlsite.DataSource = Session["Sitealiasname"].ToList();
       ddlsite.DataBind();
}
}

答案 4 :(得分:0)

如果我完全了解您的需求,请检查此代码,这将对您有用。

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        SAN();
        bind();


    }
}

private void bind()
{
    ArrayList ar = new ArrayList();
    ar.Add("first");
    ar.Add("Second");
    ar.Add("Third");
    ar.Add("Four");
    ar.Add("Five");
    ar.Add("Six");
    ar.Add("Seven");
    DropDownList1.DataSource = ar;
    DropDownList1.DataBind();
    DropDownList1.SelectedValue = Session["Sitealiasname"].ToString();
}

public void SAN()
    {
        cn.Open();
        string sq = "select  Sitealiasname from tbl_Sitemaster where sitename in (select sitename from tbl_emploeedetails where employeestatus='L' and employeeid='" + Session["EMPID"].ToString() + "') and    status='A' order by Sitealiasname asc";
        SqlCommand d = new SqlCommand(sq, cn);
        SqlDataReader r;
        r = d.ExecuteReader();
        while (r.Read())
        {
            Label4.Text = r["Sitealiasname"].ToString().Trim();
            Session["Sitealiasname"] = Label4.Text;//Suppose here session value "first"
        }

        cn.Close();

    }

如果不是你想要的,请告诉我。