0

我的主页中有一处房产

Public Property Status as String 

我通过调用手动设置状态列表

list.Items.Add(New ListItem("Open", "Open"))

然后我打电话

list.DataBind()

在我的页面上,我想将所选值设置为该属性中的值,并且我希望该属性中的值包含每个回发的列表值。

我试过SelectedValue='<%# Bind("Status") %>'了,但我收到以下错误:

Eval()、XPath() 和 Bind() 等数据绑定方法只能在数据绑定控件的上下文中使用。

有什么我想念的吗?最终目标是将 DropDownList 的状态持久化到回发之间的 Page 属性。

谢谢你。

4

2 回答 2

0

只要您不将控件的 viewstate 属性设置为 false,服务器控件的 viewstate 就会自动在回发之间保持控件的值。

第二件事是您不需要在您的情况下将其称为 DataBind() 函数。

于 2013-09-20T12:46:41.143 回答
0

您可以通过以下方式获取下拉列表的选定值

status=DropDownList1.SelectedItem.Value.ToString();

为了在每次回发后获得选定的值,您需要在下拉列表中添加事件, onselectedindexchanged="DropDownList1_SelectedIndexChanged"在这种情况下,您可以获得如下选定的值。

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        {
            status=DropDownList1.SelectedItem.Value.ToString();
        }

您可以通过如下创建视图状态来保留状态属性的值(在 c# 中)

public string status
        {

     get
            {
                if (ViewState["status"] != null)
                    return ViewState["status"].ToString();
                else
                    return null;
            }
            set
            {
                ViewState["status"] = value;
            }

        }
于 2013-09-20T12:47:36.803 回答