我触发了以下事件处理程序以响应 UpdatePanel 内的 LinkButton 回发。
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() 的调用被简单地忽略了一样。
我之前像这样添加了 Display style 标签:
imgEdit.Style.Add(HtmlTextWriterStyle.Display, "none");
...这很好用。如果我立即删除样式(与上面相同的代码),就像测试一样,那也有效。但是相同的代码在事件处理程序中没有完成任何事情。
我在这里错过了什么?
最佳答案
您不必使用添加/删除方法,您可以通过直接访问集合元素来更改样式,例如:
imgEdit.Style["Display"] = "block";
关于asp.net - 为什么 CssStyleCollection.Remove() 在这里失败了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19437625/