none
问一个关于用户控件中javascript的问题 RRS feed

  • 问题

  • 我写了一个产品分类的二级下拉菜单的用户控件,里面用JS来控制下拉菜单的显示和隐藏。
    现在问题是,当我把用户控件拖到相关页面上时。在生成出来的HTML中,怎么才能把用户控件的Javascript放到<head>...</head> 部分,而不在页面HTML的中间。
    这是我下面的代码,请问一般向这种情况应该怎么处理javascript?

    <%@ Control Language="C#" AutoEventWireup="true" CodeFile="CollectionSideNav.ascx.cs" Inherits="Controls_CollectionSideNav" %>
    <script type="text/javascript">
    $(function(){
        $("#sideNav dd span").toggle(
            function(){
                $thisSubUl = $(this).next("ul");
                $thisSubUl.slideDown(500)
            },
            function(){
                $thisSubUl = $(this).next("ul");
                $thisSubUl.slideUp(500)
            }
        )
    })
    </script>
    <asp:Repeater ID="typeList" runat="server"
        onitemdatabound="typeList_ItemDataBound">
    <HeaderTemplate>
    <dl id="sideNav" class="left">
    <dt>艺术典藏Collection</dt>
    </HeaderTemplate>
    <ItemTemplate>
            <dd <asp:PlaceHolder ID="ddItem" runat="server" />>
               <span><%# Eval("name") %></span>
            <asp:ListView ID="subList" runat="server" DataSource='<%# GetCollectionTypeList((int)Eval("id")) %>'>
                <LayoutTemplate>
                <ul>
                    <li id="itemPlaceholder" runat="server"></li>
                </ul>
                </LayoutTemplate>
                <ItemTemplate><li runat="server"><a href="http://localhost:1850/LinkG.Web/Collection.aspx?typeId=<%# Eval("id") %>"><%# Eval("name") %></a></li></ItemTemplate>
            </asp:ListView>         
            </dd>
    </ItemTemplate>
    2009年8月14日 9:22

答案

全部回复