2017-02-01 1 views
0

Ich habe eine Hilfe-Schaltfläche mit einem speziellen Bild, das ich während meines Projekts verwende. Die meiste Zeit kann ich hinzufügen, es nur in der Entwurfsansicht mit:Programmgesteuertes Hinzufügen von anklickbarem Bild auf der Webseite

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

und ich werde ein Javascript-Skript an der Unterseite der Seite click_help handhaben müssen. Alles zu diesem Teil funktioniert wie beabsichtigt.

Jetzt habe ich jedoch eine dynamisch erstellte Tabelle mit dynamischen Zellen, und ich muss eine Hilfe-Schaltfläche zu einer dieser Zellen hinzufügen. Bisher habe ich dies:

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) 

Dies wirft zwei Fehler aber:

'class' is not a member of 'System.Web.UI.HtmlControls.HtmlImage'. 
'onClick' is not an event of 'System.Web.UI.HtmlControls.HtmlImage'. 

ich durch die Hierarchie auf MSDN sah, und es sieht aus wie weder class noch onClick überall erscheinen.

Warum wirft die Linie aus der Designansicht keine Fehler auf (in der Tat sind sie voll funktionsfähig, wie ich oben erwähnt habe - der onClick-Code funktioniert definitiv)?

Wie bekomme ich die gewünschte Funktionalität mit einem dynamisch erstellten Steuerelement?

Antwort

1

Es funktioniert in der Entwurfsansicht, da das Hinzufügen von Klassen und onclick -Ereignissen grundlegende HTML-Markup sind, jedoch sind dies keine Eigenschaften des entsprechenden HtmlControls.HtmlImage-Objekttyps in VB.Net.

Für alle Attribute, die Sie hinzufügen möchten, die nicht bereits Mitglieder des Objekts sind, können Sie einfach 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

Dank für die ‚einfachen HTML-Markup‘ Bit verwenden, wusste ich nicht, dass! – GeneralMike

Verwandte Themen