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

本文关键字:列表显示 会话 | 更新日期: 2023-09-27 18:36:36

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

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

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

你可以

试试

用于 SAN 功能

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

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

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

检查此代码,如果我确切地了解您的需求,那么这将为您工作。

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

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

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

ddlsite.Items.Add(Session["Sitealiasname"].Tostring());
下拉列表

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

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

通过下拉列表支持的属性列表链接

试试这个

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

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