数据绑定Asp.Net下拉列表SelectedValue to Page属性
我的页面中有一个属性数据绑定Asp.Net下拉列表SelectedValue to Page属性,asp.net,vb.net,webforms,code-behind,Asp.net,Vb.net,Webforms,Code Behind,我的页面中有一个属性 Public Property Status as String 我通过调用手动设置状态列表 list.Items.Add(New ListItem("Open", "Open")) 然后我打电话 list.DataBind() 在我的页面上,我希望将所选值设置为该属性中的值,并且希望该属性中的值包含每个回发的列表的值 我尝试了SelectedValue='',但出现以下错误: 诸如Eval()、XPath()和Bind()之类的数据绑定方法只能是 在数据绑定控件的
Public Property Status as String
我通过调用手动设置状态列表
list.Items.Add(New ListItem("Open", "Open"))
然后我打电话
list.DataBind()
在我的页面上,我希望将所选值设置为该属性中的值,并且希望该属性中的值包含每个回发的列表的值
我尝试了SelectedValue=''
,但出现以下错误:
诸如Eval()、XPath()和Bind()之类的数据绑定方法只能是
在数据绑定控件的上下文中使用
我有什么遗漏吗?最终目标是在回发之间将DropDownList的状态持久化到Page属性
谢谢。服务器控件具有viewstate,只要不将控件的viewstate属性设置为false,就可以在回发之间自动保留控件的值
第二件事是在您的情况下不需要将其称为DataBind()函数。您可以通过
status=DropDownList1.SelectedItem.Value.ToString();
为了在每次回发后获得所选值,您需要在dropdownlistonselectedindexchanged=“dropdownlist 1\u SelectedIndexChanged”
中添加事件,在该事件中,您可以获得所选值,如下所示
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
status=DropDownList1.SelectedItem.Value.ToString();
}
通过创建如下视图状态(在c#中),可以持久化status属性的值
这不起作用,因为如果另一个控件触发回发,我将丢失Status中的值。我正在尝试将该值持久化到页面属性。如果(Page.IsPostback){Status=dropdownlist1.selectedValue;}我希望它自动发生。我以为Bind会这么做?我不想呼叫列表。SelectedValue
public string status
{
get
{
if (ViewState["status"] != null)
return ViewState["status"].ToString();
else
return null;
}
set
{
ViewState["status"] = value;
}
}