0

我正在尝试通过下拉列表显示会话值。这是我制作的代码,但效果不佳。纠正我

    //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();
    }
4

5 回答 5

1

你可以试试

用于 SAN 功能使用

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

对于绑定到下拉列表,您可以使用

    ddlsite.DataSource = Session["Sitealiasname"];
    ddlsite.DataBind();
于 2012-06-08T05:47:14.463 回答
0

在页面加载中尝试此代码以将会话值绑定到 Dropdowlist

ddlsite.Items.Add(Session["Sitealiasname"].Tostring());
于 2012-06-08T05:39:13.960 回答
0

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

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

下拉链接支持的属性列表

于 2012-06-08T05:40:53.233 回答
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();
}
}
于 2012-06-08T06:45:34.930 回答
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();

    }

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

于 2012-06-08T07:15:05.363 回答