如何在Visual Studio上根据listview值更改页面加载时的按钮文本

本文关键字:加载 文本 按钮 Visual Studio listview | 更新日期: 2023-09-27 18:06:14

我想在检索列表视图值后更改页面加载时的按钮文本。

例如

<asp:Label ID="favouriteLabel" runat="server" Text='<%# Eval("favourite") %>' />

如果该标签值为1,按钮将变为favorites。

我已经通过绑定listview 来检索列表视图值。
protected void ListView1_ItemDataBound(object sender, ListViewItemEventArgs e)
    {
        if (e.Item.ItemType == ListViewItemType.DataItem)
        {
            Label activity = (Label)e.Item.FindControl("favouriteLabel");
            activityID =  activity.Text;               
        }
    }

然后,我得到activityID并对页面加载

做一个简单的if-else检查
protected void Page_Load(object sender, EventArgs e)
    {         
        if (activityID == "1")
        {
            Button4.Text = "Favourited";
        }
        else
        {
            Button4.Text = "Favourite";
        }
    }

但是它不起作用。有人知道吗?

如何在Visual Studio上根据listview值更改页面加载时的按钮文本

在load事件中进行PostBack检查,例如:

protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if (activityID == "1")
                {
                    Button4.Text = "Favourited";
                }
                else
                {
                    Button4.Text = "Favourite";
                }
            }
        }

在这里阅读更多关于回帖的信息

Page_Load发生在你的ItemDataBound事件之前,所以你在Page_Load中看到的activityId永远不会是1。

将Page_Load中的代码放入ItemDataBoundEvent