我正在填写数据库中的下拉列表,但我想将“选择项目”添加到下拉列表中,并将其设为默认选项:
我试图设置writerddl.SelectedValue = "please...";
,但运行时错误说:
'writerddl'有一个无效的SelectedValue,因为它没有 存在于项目列表中。参数名称:值
这是我的代码:
protected void Page_Load(object sender, EventArgs e)
{
writerddl.SelectedValue = "please...";
if (!IsPostBack)
{
writerddl.DataSource = DS.show_all_writers();
writerddl.DataValueField = "writerid";
writerddl.DataTextField = "writersname";
writerddl.DataBind();
}
}
答案 0 :(得分:4)
试试这段代码。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
writerddl.DataSource = DS.show_all_writers();
writerddl.DataValueField = "writerid";
writerddl.DataTextField = "writersname";
writerddl.DataBind();
writerddl.Items.insert(0, new ListItem("Please select",""));
}
}
答案 1 :(得分:1)
删除它:
writerddl.SelectedValue = "please...";
并使用此:
//....
writerddl.DataBind();
writerddl.Items.Insert(0, "please...");
//...
更新:
使用像这样的Clear()方法:
protected void Page_Load(object sender, EventArgs e)
{
writerddl.Items.Clear();
writerddl.DataSource = DS.show_all_writers();
writerddl.DataValueField = "writerid";
writerddl.DataTextField = "writersname";
writerddl.DataBind();
writerddl.Items.Insert(0, "please...");
}
答案 2 :(得分:-1)
使用以下代码。请注意,选定值行在下方移动,这会产生差异。希望下拉列表中存在值为“please ...”的项目。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
writerddl.DataSource = DS.show_all_writers();
writerddl.DataValueField = "writerid";
writerddl.DataTextField = "writersname";
writerddl.DataBind();
writerddl.SelectedValue = "please...";
}
}
更新 “希望带有价值的物品”请...“存在于下拉列表中”将此行更改为“希望带有值的项目”请...“存在于绑定源中”。
更新1: 如果来源没有项目“请...”,这里是以下代码。 protected void Page_Load(object sender,EventArgs e) {
if (!IsPostBack)
{
writerddl.Items.Add(new ListItem("Select An Item", "please..."));
writerddl.DataSource = DS.show_all_writers();
writerddl.DataValueField = "writerid";
writerddl.DataTextField = "writersname";
writerddl.DataBind();
writerddl.SelectedValue = "please...";
}
}