无法从数据库绑定的下拉列表中获取值
Cannot get value from database-bound dropdownlist
我在 VS2017 中使用 asp.net 4.5 网络表单并使用下拉列表获取值
从数据库中尝试获取值,但它一直只给我最高值,所以我正在寻求帮助。
我绑定值的方式是这样的:
protected void Page_Load(object sender, EventArgs e)
{
var db = new dbContext();
var CustItem = db.customer.ToList();
customerDropDownList.DataSource = CustItem;
customerDropDownList.DataTextField = "cust";
customerDropDownList.DataValueField = "cust";
customerDropDownList.DataBind();
}
它运行良好,获取客户 table 中的所有列表,并在 id 的 cust 列中填充数据:customerDropDownList。
然后我尝试通过 testBtn 从 customerDropDownList 获取价值
附加并使用了 testLbl
protected void testBtn_Click(object sender, EventArgs e)
{
testLbl.Text = customerDropDownList.SelectedValue;
}
并且它总是只选择顶部元素。
我怀疑这与 asp.net 的生命周期有关,正在研究中
但找不到解决这个问题的明确答案。
谁能帮我解决这个问题?
可能是因为您在每次加载页面时都重置了下拉列表。第一次尝试只设置 ddlist。
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
var db = new dbContext();
var CustItem = db.customer.ToList();
customerDropDownList.DataSource = CustItem;
customerDropDownList.DataTextField = "cust";
customerDropDownList.DataValueField = "cust";
customerDropDownList.DataBind();
}
}
您在页面加载事件中缺少 Page.IsPostBack
有关 Ispostback 的更多信息 here
使用您的代码,您是否没有注意到您的下拉列表在点击时翻了一番?
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
var db = new dbContext();
var CustItem = db.customer.ToList();
customerDropDownList.DataSource = CustItem;
customerDropDownList.DataTextField = "cust";
customerDropDownList.DataValueField = "cust";
customerDropDownList.DataBind();
}
}
确保只加载一次下拉列表。单击按钮时也会调用您的页面加载。
保持一个断点并玩转!!祝你好运
我在 VS2017 中使用 asp.net 4.5 网络表单并使用下拉列表获取值 从数据库中尝试获取值,但它一直只给我最高值,所以我正在寻求帮助。
我绑定值的方式是这样的:
protected void Page_Load(object sender, EventArgs e)
{
var db = new dbContext();
var CustItem = db.customer.ToList();
customerDropDownList.DataSource = CustItem;
customerDropDownList.DataTextField = "cust";
customerDropDownList.DataValueField = "cust";
customerDropDownList.DataBind();
}
它运行良好,获取客户 table 中的所有列表,并在 id 的 cust 列中填充数据:customerDropDownList。 然后我尝试通过 testBtn 从 customerDropDownList 获取价值 附加并使用了 testLbl
protected void testBtn_Click(object sender, EventArgs e)
{
testLbl.Text = customerDropDownList.SelectedValue;
}
并且它总是只选择顶部元素。
我怀疑这与 asp.net 的生命周期有关,正在研究中 但找不到解决这个问题的明确答案。
谁能帮我解决这个问题?
可能是因为您在每次加载页面时都重置了下拉列表。第一次尝试只设置 ddlist。
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
var db = new dbContext();
var CustItem = db.customer.ToList();
customerDropDownList.DataSource = CustItem;
customerDropDownList.DataTextField = "cust";
customerDropDownList.DataValueField = "cust";
customerDropDownList.DataBind();
}
}
您在页面加载事件中缺少 Page.IsPostBack
有关 Ispostback 的更多信息 here
使用您的代码,您是否没有注意到您的下拉列表在点击时翻了一番?
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
var db = new dbContext();
var CustItem = db.customer.ToList();
customerDropDownList.DataSource = CustItem;
customerDropDownList.DataTextField = "cust";
customerDropDownList.DataValueField = "cust";
customerDropDownList.DataBind();
}
}
确保只加载一次下拉列表。单击按钮时也会调用您的页面加载。
保持一个断点并玩转!!祝你好运