以编程方式在网页上添加可点击图像

时间:2017-02-01 16:45:44

标签: vb.net visual-web-developer

我有一个帮助按钮,其中包含我在整个项目中使用的特殊图像。大多数情况下,我可以在设计视图中添加:

<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上的层次结构,看起来classonClick都没有出现在任何地方。

那么为什么上面的设计视图中的行没有抛出任何错误(事实上,它们是完全正常的,如上所述 - onClick代码肯定有效)?

如何使用动态创建的控件获得所需的功能?

1 个答案:

答案 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)