0

该下拉列表中有多个值..

e.g.
Car
Truck
Bike
Drink
Factory

还有另一个登录页面 Login.aspx 。登录代码

  protected void Button1_Click(object sender, EventArgs e)
    {
        try
        {
            //Label1.BackColor = "F8D8D7";
            loginmethod(txt_us.Text, txt_pwd.Text);
            
            Response.Redirect("WebForm1.aspx");
        }
        catch( Exception )
        {
            Label1.Text = ("Incorrect UserName/Password");
            Label1.Visible = true;
        }
        txt_us.Text = "";
        txt_pwd.Text = "";
        
        
    }
    public bool  loginmethod(string UserName,string Password)
    {
        TrackDataEntities1 td = new TrackDataEntities1();
    
       splogin1_Result sp = td.splogin1(UserName, Password).FirstOrDefault();
       if(sp.Password==txt_pwd.Text)
       {
           return true;
       }
       else
       {
           return false;
       }

       

    }

现在有两个用户.. admin 和 user 。现在我想当管理员登录然后使用他们的 ID 和密码然后他会看到这个列表中的一些值,当用户登录时他会看到这个列表中的一些值,例如当管理员登录时他可能只能看到出厂值和当用户登录然后他可以看到除工厂以外的所有值

更新

在 login.aspx 我保存用户名是会话

Session["UserName"] = txt_us.Text;

在 form.aspx 中

首先我在这里创建 sp

ALTER procedure [dbo].[spadminlist]
as
select Region from tblReg
where Region in ('Factory')

然后我在 form.aspx 中添加这个 sp

//这个用于选择所有值的linq查询

    var list = tea.tblReg.AsEnumerable()
              .Where(x => !x.Region.Any(char.IsDigit)  && (x.Region != ""))
              .GroupBy(x => x.Region)
              .Select(x => new { Region = x.Key, Value = x.Key })
              .ToList();

//这是给管理员的

     if (Session["UserName"] = "admin")
        {
            List<spadminlist_Result> admin = tea.spadminlist().ToList();
        }

并填写下拉菜单

 if (!Page.IsPostBack)
            {
                regiondrop.DataSource = list;
                regiondrop.DataTextField = "Region";
                regiondrop.DataValueField = "Region";
                regiondrop.DataBind();

                Label4.Visible = false;
               


            }

但这显示错误以及我如何用 admin sp 填充下拉列表,因为有查询

Error   3   Cannot implicitly convert type 'object' to 'bool'. An explicit conversion exists (are you missing a cast?)  

我该怎么做?

4

1 回答 1

0

对于动态列表:

从后端获取用户是管理员还是普通用户。

List<string> menuItems = new List<string>();
if(logged_user == "ADMIN")
{
  menuItems.add("item1");
  menuItems.add("item2");
}
else 
{
  menuItems.add("item1");
  menuItems.add("item2");
} 
DropDownList1.DataTextField = "user_name";
DropDownList1.DataValueField = "user_id";
DropDownList1.DataSource = menuItems;
DropDownList1.DataBind();

对于静态列表:

if(logged_user == "ADMIN")
{
  DropDownList1.Items.FindByText("Item1").Enabled = false;

  OR
        DropDownList1.Items[i].Enabled = false;
}
else 
{
  Same process as above.
} 
DropDownList1.DataTextField = "user_name";
DropDownList1.DataValueField = "user_id";
DropDownList1.DataBind();
于 2016-08-25T09:28:56.527 回答