该下拉列表中有多个值..
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;
}
}
现在有两个用户..管理员和用户。现在我想当管理员登录然后用他们的id和密码然后他看到这个列表中的一些值,当用户登录时,他会看到这个列表中的一些值,例如当管理员登录时,他可能只能看到Factory值和用户登录然后他能够看到除工厂
以外的所有值更新
在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?)
我是怎么做到的?
答案 0 :(得分: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();