我的页面中有一个属性
Public Property Status as String
我通过调用
手动设置状态列表list.Items.Add(New ListItem("Open", "Open"))
然后我打电话
list.DataBind()
在我的页面上,我想将所选值设置为该属性中的值,并且我希望该属性中的值包含每个帖子上的列表值。
我尝试SelectedValue='<%# Bind("Status") %>'
,但收到以下错误:
数据绑定方法,如Eval(),XPath()和Bind()只能是 在数据绑定控件的上下文中使用。
我有什么遗失的吗?最终目标是将DropDownList的状态持久保存到post backs之间的Page属性。
谢谢。
答案 0 :(得分:0)
服务器控件具有viewstate,只要您不将控件的viewstate属性设置为false,就会自动在回发之间保留控件的值。
第二件事是你不需要在你的情况下将它称为DataBind()函数。
答案 1 :(得分:0)
您可以按
获取所选的下拉列表值status=DropDownList1.SelectedItem.Value.ToString();
为了在每次回发后获得所选值,您需要在下拉列表onselectedindexchanged="DropDownList1_SelectedIndexChanged"
中添加事件,在这种情况下,您可以按如下方式获取所选值。
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
status=DropDownList1.SelectedItem.Value.ToString();
}
您可以通过创建视图状态来保持status属性的值,如下所示(在c#中)
public string status
{
get
{
if (ViewState["status"] != null)
return ViewState["status"].ToString();
else
return null;
}
set
{
ViewState["status"] = value;
}
}