为什么CssStyleCollection.Remove()在这里失败?

时间:2013-10-17 21:27:34

标签: asp.net css updatepanel

我在响应UpdatePanel内的LinkBut​​ton回发时触发了以下事件处理程序。

    protected void rptImages_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        //selection is only ItemCommand
        string ID = (string)e.CommandArgument;

        imgEdit.Style.Remove(HtmlTextWriterStyle.Display); //make the img visible
        imgEdit.ImageUrl = GetImageURL(ID);
    }

更新ImageUrl属性可以正常工作。但样式属性的“显示”部分仍然存在。在调试器中观察,集合的Keys和Value属性根本不会改变。好像只是忽略了对Remove()的调用。

我之前添加了显示样式标记:

imgEdit.Style.Add(HtmlTextWriterStyle.Display, "none");

......这很好用。如果我立即删除样式(与上面相同的代码),就像测试一样,也可以。但是相同的代码在事件处理程序中没有完成任何事情。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:2)

您不必使用添加/删除方法,您可以通过直接访问集合元素来更改样式,例如:

imgEdit.Style["Display"] = "block";