我有一个帮助按钮,其中包含我在整个项目中使用的特殊图像。大多数情况下,我可以在设计视图中添加:
<img alt="" src="Images/help.jpg" onclick="click_help('foo', 'bar')" class="myHelpClass" style="height: 20px; width: 33px" />
并且我在页面底部有一个javascript脚本来处理click_help
。这一部分的一切都按预期工作。
然而,现在,我有一个动态创建的动态单元格表,我需要在其中一个单元格中添加一个帮助按钮。到目前为止,我有这个:
Dim help As New HtmlControls.HtmlImage
help.Src = "Images/help.jpg"
help.class = "myHelpClass"
help.Height = 20
help.Width = 33
AddHandler help.onClick, AddressOf helpClicked
cell.Controls.Add(help)
这会引发2个错误:
'class' is not a member of 'System.Web.UI.HtmlControls.HtmlImage'.
'onClick' is not an event of 'System.Web.UI.HtmlControls.HtmlImage'.
我查看了MSDN上的层次结构,看起来class
和onClick
都没有出现在任何地方。
那么为什么上面的设计视图中的行没有抛出任何错误(事实上,它们是完全正常的,如上所述 - onClick代码肯定有效)?
如何使用动态创建的控件获得所需的功能?
答案 0 :(得分:1)
它在设计视图中工作,因为添加类和onclick事件是基本HTML标记,但这些不是VB.Net中相应HtmlControls.HtmlImage
对象类型的属性。
对于您想要添加但尚未成为对象成员的任何属性,您只需使用myElement.Attributes.Add("attribute-name", "attribute value")
Dim help As New HtmlControls.HtmlImage
help.Src = "Images/help.jpg"
help.Height = 20
help.Width = 33
help.Attributes.Add("class","myHelpClass")
help.Attributes.Add("onclick","click_help('foo', 'bar');")
cell.Controls.Add(help)