相关问题:Get All Web Controls of a Specific Type on a Page
在上面的问题中,我问我如何获得所有控件,它们的作用就像魔咒,但有些东西不太合适,所以我认为可能是我。我有以下代码,但它没有操纵页面上的控件,但按我的理论,它应该可以工作。
List<DropDownList> allControls = new List<DropDownList>();
ControlEnhancer.GetControlList<DropDownList>(Page.Controls, allControls);
foreach (DropDownList childControl in allControls)
{
foreach (ListItem li in childControl.Items)
{
li.Attributes.Add("title", li.Text);
}
childControl.Attributes.Add("onmouseover", "this.title=this.options[this.selectedIndex].title");
}
那就是代码,您可以从相关问题中获取GetControlList()代码,该问题显示了它如何获取所有控件,仅是我的操作。我正在尝试获取所有dropdownlist列表项,并为其添加标题,以便获得工具提示。
这是针对IE8及以下版本的快速修复,该版本可在下拉框中剪切长文本。
最佳答案
Page_Load
通常发生得太早; Page_PreRender
是实际为浏览器呈现页面HTML之前的最后一刻,在许多情况下,这是在用户控件上设置属性的最佳位置。
这是因为在Web表单(页面)生命周期中,页面(以及页面中包含的用户控件...)中还存在其他事件,这些事件有时会删除/替换/覆盖(实际上)这些属性,因此这是唯一的方法您可以将这些属性添加到浏览器中,即在Page_PreRender.
中触发并处理了所有其他生命周期事件之后将其附加