2012-10-12 39 views
0

當菜單項動態創建時,如何將鼠標懸停JavaScript功能添加到asp.net菜單項?不允許你添加.attributes功能。將鼠標移到JavaScript的功能Asp.Net動態菜單項

[Javasript]

<script type="text/javascript"> 
    function ChangeProjectImage(obj) { 
     var ctrl = document.getElementById(obj.id); 
     ...code... 
    } 
</script> 

[HTML - 菜單控制]

<asp:Menu ID="Menu1" runat="server" Orientation="Vertical" Font-Names="Verdana" Font-Size="12px" 
     CssClass="Menu"> 
</asp:Menu> 

[代碼隱藏 - 添加菜單項動態]

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    If Me.IsPostBack Then 

    Else 
     Dim dt As DataTable = Session("dt") 

     For Each dr As DataRow In dt.Rows 
      Dim mi As New MenuItem(dr(0), dr(1), "images\folder_03.png") 
      Menu1.Items.Add(mi) 
     Next 

    End If 
+0

你在你的項目有JQuery的?或者你可以使用jQuery? – Praveen

+0

這個項目中沒有JQuery,我還沒有使用它。 – TroyS

+0

經過大量研究後,似乎不可能。我可能不得不使用樣式無序列表。 – TroyS

回答

0

我結束了使用DataGrid控件。

HTML

<div style="clear: left; padding-right: 5px;"> 
     <asp:GridView ID="GridView1" runat="server" ShowHeader="False" GridLines="None" BorderStyle="None" CssClass="MyGridView"> 
      <Columns> 
       <asp:ImageField> 
        <ItemStyle Height="16px" Width="16px" /> 
       </asp:ImageField> 
      </Columns> 
     </asp:GridView> 
</div> 

代碼隱藏

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    If Me.IsPostBack Then 

    Else 
     ...code to fill datagrid 

     For Each gr As GridViewRow In GridView1.Rows 
      ...code 
      gr.Attributes.Add("onmouseover", "ChangeProjectImage(""productimages/" & gr.Cells(2).Text & """,""" & gr.Cells(3).Text & """)") 
      gr.Attributes.Add("onmouseout", "ChangeProjectImage(""images/display2.png"",""140"")") 
     Next   
    End If 

End Sub 

的JavaScript

function ChangeProjectImage(imgpath, resizeheight) { 
    var img1 = document.getElementById"MainContent_LeftTopTabContainer_ThumbTabPanel_Image2") 
    img1.style.height = resizeheight 
    img1.src = imgpath; 
    }