2017-02-01 70 views
0

我有一个帮助按钮,其中包含我在整个项目中使用的特殊图像。大多数时候,我可以只是添加它在设计视图:以编程方式在网页上添加可点击图像

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

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

回答

1

它在设计视图中工作,因为添加类和onclick事件是基本的HTML标记,但是这些不是VB.Net中对应的对象类型的属性。

对于您要添加的已经不是对象的成员的任何属性,你可以简单地使用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) 
+0

感谢“基本HTML标记”位,我不知道! – GeneralMike

相关问题