目录1 
  子目录1 
  子目录2 
  子目录3 
目录2 
各位高手谁能告诉我,我如何用鼠标的onmouseover事件移到目录1时显示二级子目录,这些目录都是和数据库邦定的.datalist里用的是Hyperlink控件,为什莫这两个控件都不支持onmouseover事件呢??  

解决方案 »

  1.   

    一定要利用onmouseover吗?通过点击打开不可以吗?
    利用Hyperlink.Attributes.Add("onmouseover","..."),不过要用javascript写脚本
      

  2.   

    to:wangxy0919()
    大哥。。具体如何实现a
      

  3.   

    datalist等,你用的,都是服务器端控件,当然不能自动检测客户端你的鼠标的情况了。
    你可以利用HTML的客户端代码,来进行。比如td,div...都有onmouseover事件。
    Hyperlink.Attributes.Add("onmouseover","...")就是同样道理
      

  4.   

    方法1.用DIV
    =======================
    方法2.
    这是DG的事件添加你看看
    private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
    e.Item.Attributes.Add("onmouseover","currentcolor=this.style.backgroundColor;this.style.backgroundColor='#336699'");
    e.Item.Attributes.Add("onmouseout","this.style.backgroundColor=currentcolor");} 
    }
      

  5.   


     to:Proyang(小过)Hyperlink.Attributes.Add("onmouseover","...")是干什莫用的??能否说清楚一下!!!谢谢
      

  6.   

    <%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm6.aspx.vb" Inherits="hdata.WebForm6"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <title>WebForm6</title>
    <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
    <meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE">
    <meta content="JavaScript" name="vs_defaultClientScript">
    <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
    <SCRIPT language="JavaScript"> function ShowMenu(menu) {
    document.all["child" + menu].style.top = document.all["menu" + menu].offsetTop+100;
    document.all["child" + menu].style.left = 115;
    document.all["child" + menu].style.visibility = "visible";
    }
    function HideMenu(menu) {
    document.all["child" + menu].style.visibility = "hidden";
    }
    </SCRIPT>
    <LINK title="Cool" href="../hdata/StyleSheet1.css" type="text/css" rel="STYLESHEET">
    </HEAD>
    <body MS_POSITIONING="GridLayout">
    <form id="Form1" method="post" runat="server">
    <DIV id="menuBar" style="Z-INDEX: 100">
    <asp:DataList id="DataList1" style="Z-INDEX: 101; LEFT: 104px; POSITION: absolute; TOP: 112px"
    runat="server">
    <ItemTemplate>
    <table>
    <tr>
    <TD class="menuItem" id="Kintai" onmouseover="ShowMenu('Kintai')" onmouseout="HideMenu('Kintai')"
    align="center">
    <asp:LinkButton id="LinkButton1" Text='<%# DataBinder.Eval(Container,"DataItem") %>' runat="server">LinkButton</asp:LinkButton>
    </TD>
    </tr>
    </table>
    </ItemTemplate>
    </asp:DataList></DIV>
    <!--------------------- ChildMenu設定 ---------------------->

    <DIV class="childMenu" id="childKintai" onmouseover="ShowMenu('Kintai')" style="Z-INDEX: 101; VISIBILITY: hidden"
    onmouseout="HideMenu('Kintai')" runat="server"><asp:hyperlink id="Hyperlink3" style="Z-INDEX: 103; LEFT: 480px; POSITION: absolute; TOP: 256px"
    runat="server">HyperLink</asp:hyperlink></DIV>
    <DIV></DIV>

    <DIV class="childMenu" id="childAdapt" onmouseover="ShowMenu('Adapt')" style="Z-INDEX: 102; VISIBILITY: hidden"
    onmouseout="HideMenu('Adapt')"><asp:hyperlink id="Hyperlink1" style="Z-INDEX: 103; LEFT: 480px; POSITION: absolute; TOP: 256px"
    runat="server">HyperLink</asp:hyperlink></DIV>

    <DIV class="childMenu" id="childMente" onmouseover="ShowMenu('Mente')" style="Z-INDEX: 103; VISIBILITY: hidden"
    onmouseout="HideMenu('Mente')"><asp:hyperlink id="HyperLink2" runat="server">HyperLink</asp:hyperlink></DIV>
    </form>
    </body>
    </HTML>哪里有错啊???
      

  7.   

    你可以使用嵌套的DataList,把嵌套在内部的DataList放在一个隐藏的Div内,还是给你一个例子比较容易说明:
    NestedGrid.aspx:
    ----------------------------
    <%@ Page language="c#" Codebehind="NestedGrid.aspx.cs" AutoEventWireup="false" Inherits="TreeView_demo.NestedGrid" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
    <HEAD>
    <title>NestedGrid</title>
    <META http-equiv="Content-Type" content="text/html; charset=gb2312">
    <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
    <meta content="C#" name="CODE_LANGUAGE">
    <meta content="JavaScript" name="vs_defaultClientScript">
    <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
    <script language="javascript">
    function CheckAll( checkAllBox )
    {
      var frm = document.forms[0] ;
      var actVar = checkAllBox.checked ;
      for(i=0;i< frm.length;i++)
      {
      e=frm.elements[i];
      if ( e.type=='checkbox' && e.id.indexOf(checkAllBox.id.substring(0,checkAllBox.id.lastIndexOf('_'))) != -1)
      {
    e.checked= actVar ;
    }
      }
    }

    function UnCheck(checkAllBox)
    {
    alert(checkAllBox.id);
    var frm = document.forms[0] ;
    for(i=0;i< frm.length;i++)
    {
    e=frm.elements[i];
    if ( e.type=='checkbox' && e.name.indexOf(checkAllBox.id.substring(0,e.name.length-1)) != -1 )
    {
       e.checked= false ;
       break;
    }
    }
    }

    var lastDiv = null;
    function ShowDiv(divID)
    {
    var objDiv = document.getElementById(divID);
    if (lastDiv != null)
    {
    if (lastDiv.style.display == "block")
    {
    lastDiv.style.display = "none";
    }
    }
    if (objDiv.style.display == "none")
    {
    objDiv.style.display = "block";
    }
    lastDiv = objDiv;
    }
    </script>
    </HEAD>
    <body MS_POSITIONING="GridLayout">
    <form id="Form1" method="post" runat="server">
    <asp:button id="Button1" style="Z-INDEX: 101; LEFT: 8px; POSITION: absolute; TOP: 16px" runat="server"
    Text="查看选择项"></asp:button><asp:datalist id="dataListA" style="Z-INDEX: 102; LEFT: 8px; POSITION: absolute; TOP: 48px" Width="100%"
    Runat="server" EnableViewState="False">
    <ItemTemplate>
    <table border="0" width="100%" cellpadding="0" cellspacing="0">
    <tr>
    <td>
    <input type="checkbox" id="cbParent" NAME="cbParent" onclick="CheckAll(this);" runat="server">&nbsp;<a href="javasript:void(0);" onmouseover="javascript:ShowDiv('div<%#Container.ItemIndex%>')"><%# DataBinder.Eval(Container.DataItem, "Name") %></a>
    </td>
    </tr>
    <tr>
    <td style="padding-left:30;">
    <div style="display:none;" id="div<%#Container.ItemIndex%>">
    <asp:DataList id="dataListB" EnableViewState="False" Width=100% Runat="server" DataSource='<%# DataBinder.Eval(Container.DataItem, "SubItems") %>'>
    <ItemTemplate>
    <input type="checkbox" id="cbChild" name="cbChild" onclick="UnCheck(this);" runat="server">&nbsp;<%# DataBinder.Eval(Container.DataItem, "Name") %>
    </ItemTemplate>
    </asp:DataList>
    </div>
    </td>
    </tr>
    </table>
    </ItemTemplate>
    </asp:datalist></form>
    </body>
    </HTML>
    ----------------------------
    NestedGrid.aspx:
    ----------------------------
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;namespace TreeView_demo
    {
    /// <summary>
    /// NestedGrid 的摘要说明。
    /// </summary>
    public class NestedGrid : System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.DataList dataListA;
    protected System.Web.UI.WebControls.Button Button1;

    private void Page_Load(object sender, System.EventArgs e)
    {
    dataListA.DataSource = TestDataSource.GetHierarchicalData();
    dataListA.DataBind();
    } #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.Button1.Click += new System.EventHandler(this.Button1_Click);
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion private void Button1_Click(object sender, System.EventArgs e)
    {
    foreach(DataListItem di in this.dataListA.Items)
    {
    DataList dlChild = (DataList)di.FindControl("dataListB");
    if (dlChild != null)
    {
    foreach(DataListItem diChild in dlChild.Items)
    {
    HtmlInputCheckBox cb = (HtmlInputCheckBox)diChild.FindControl("cbChild") ;
    if(cb !=null && cb.Checked)
    {
    Response.Write(cb.ClientID.ToString()+",");
    }
    }
    }
    }
    }
    } public class Item
    {
    string _name;
    ArrayList _subItems = new ArrayList(); public Item() : this("") {}
    public Item(string name) { _name = name; } public string    Name     { get { return _name;     } }
    public ArrayList SubItems { get { return _subItems; } }
    } public class TestDataSource
    {
    public static ArrayList GetHierarchicalData()
    {
    ArrayList items = new ArrayList();
    for (int i=0; i<4; i++)
    {
    Item item = new Item("Item" + i.ToString());
    for (int j=0; j<5; j++)
    {
    Item subItem = new Item("Subitem" + j.ToString());
    item.SubItems.Add(subItem);
    }
    items.Add(item);
    }
    return items;
    }
    }}
      

  8.   

    谁能告诉我
    我想生成一个动态的dataset可以吗???怎莫生成???谢谢!!