目录1
子目录1
子目录2
子目录3
目录2
各位高手谁能告诉我,我如何用鼠标的onmouseover事件移到目录1时显示二级子目录,这些目录都是和数据库邦定的.datalist里用的是Hyperlink控件,为什莫这两个控件都不支持onmouseover事件呢??
子目录1
子目录2
子目录3
目录2
各位高手谁能告诉我,我如何用鼠标的onmouseover事件移到目录1时显示二级子目录,这些目录都是和数据库邦定的.datalist里用的是Hyperlink控件,为什莫这两个控件都不支持onmouseover事件呢??
利用Hyperlink.Attributes.Add("onmouseover","..."),不过要用javascript写脚本
大哥。。具体如何实现a
你可以利用HTML的客户端代码,来进行。比如td,div...都有onmouseover事件。
Hyperlink.Attributes.Add("onmouseover","...")就是同样道理
=======================
方法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");}
}
to:Proyang(小过)Hyperlink.Attributes.Add("onmouseover","...")是干什莫用的??能否说清楚一下!!!谢谢
<!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>哪里有错啊???
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"> <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"> <%# 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;
}
}}
我想生成一个动态的dataset可以吗???怎莫生成???谢谢!!