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

Programmatically Adding Clickable Image on Web Page

我有一个帮助按钮,上面有我在整个项目中使用的特殊图像。大多数时候,我可以将它添加到设计视图中:

<img alt="" src="Images/help.jpg" onclick="click_help('foo', 'bar')" class="myHelpClass" style="height: 20px; width: 33px" />

我将在页面底部有一个 javascript 脚本来处理 click_help。这部分的一切都按预期工作。

但是,现在我有一个动态创建的 table 动态单元格,我需要向其中一个单元格添加一个帮助按钮。到目前为止,我有这个:

    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 代码肯定有效)?

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

它在设计视图中有效,因为添加 类 和 onclick 事件是基本的 HTML 标记,但是这些不是 [=17] 中相应 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)