posts - 77,  comments - 28,  trackbacks - 2
公告
  2006年10月9日

下面的代码实现了检测客户端显示器分辨率、浏览器类型和客户端IP的功能。你可以把客户端信息保存到Session,ViewState等中以便在其它的页面直接使用。

例子

ClientPeek.aspx

<%@ Page language="vb" EnableViewState="false" Codebehind="ClientPeek.aspx.vb" AutoEventWireup="false" Inherits="aspxWeb.ClientPeek"%> <!doctype HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <html> <head> <title>检测客户端显示器分辨率、浏览器类型和客户端IP</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <meta content="Microsoft Visual Studio 7.0" name="GENERATOR"> <meta content="C#" name="CODE_LANGUAGE"> <meta content="【孟子E章】:http://xml.sz.luohuedu.net/" name="CopyRight"> <meta content="JavaScript" name="vs_defaultClientScript"> <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema"> </head> <body id="MyBody" MS_POSITIONING="GridLayout" runat="server"> <form id="browserpeek" runat="server"> <asp:label id="Label1" runat="server"></asp:label> </form> </body> </html>

ClientPeek.aspx.vb

Imports System Public Class ClientPeek Inherits System.Web.UI.Page Protected WithEvents Label1 As System.Web.UI.WebControls.Label Protected WithEvents MyBody As System.Web.UI.HtmlControls.HtmlGenericControl #Region " Web 窗体设计器生成的代码 " '该调用是 Web 窗体设计器所必需的。 <system.diagnostics.debuggerstepthrough()> Private Sub InitializeComponent() End Sub '注意: 以下占位符声明是 Web 窗体设计器所必需的。 '不要删除或移动它。 Private designerPlaceholderDeclaration As System.Object Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles MyBase.Init 'CODEGEN: 此方法调用是 Web 窗体设计器所必需的 '不要使用代码编辑器修改它。 InitializeComponent() End Sub #End Region Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles MyBase.Load Dim Button1 As New System.Web.UI.WebControls.Button If Not Me.IsPostBack Then Dim btnW As New System.Web.UI.HtmlControls.HtmlInputHidden Dim btnH As New System.Web.UI.HtmlControls.HtmlInputHidden Button1.ID = "Button1" btnW.Name = "WidthPixel" btnW.ID = "WidthPixel" btnH.Name = "HeightPixel" btnH.ID = "HeightPixel" Me.FindControl("browserpeek").Controls.Add(btnW) Me.FindControl("browserpeek").Controls.Add(btnH) Me.FindControl("browserpeek").Controls.Add(Button1) Dim scriptString As String = "" scriptString += "document.browserpeek.WidthPixel.value=window.screen.width;" scriptString += "document.browserpeek.HeightPixel.value=window.screen.height;" Me.RegisterOnSubmitStatement("Meng", scriptString) Me.MyBody.Attributes.Add("onload", "document.browserpeek.Button1.click();") Else Me.MyBody.Attributes.Remove("onload") If Me.FindControl("browserpeek").Controls.Contains(Button1) Then Me.FindControl("browserpeek").Controls.Remove(Button1) Button1.Dispose() End If Dim strLabel As New System.Text.StringBuilder Dim bc As HttpBrowserCapabilities = Request.Browser strLabel.Append("您的浏览器的分辨率为:") strLabel.Append(Request.Form("WidthPixel")) strLabel.Append("&#215;") strLabel.Append(Request.Form("HeightPixel")) strLabel.Append("<hr color='#000099'>") strLabel.Append("浏览器基本信息:<br>") strLabel.Append("Type = " & bc.Type & "<br>") strLabel.Append("Name = " & bc.Browser & "<br>") strLabel.Append("Version = " & bc.Version & "<br>") strLabel.Append("Major Version = " & bc.MajorVersion & "<br>") strLabel.Append("Minor Version = " & bc.MinorVersion & "<br>") strLabel.Append("Platform = " & bc.Platform & "<br>") strLabel.Append("Is Beta = " & bc.Beta & "<br>") strLabel.Append("Is Crawler = " & bc.Crawler & "<br>") strLabel.Append("Is AOL = " & bc.AOL & "<br>") strLabel.Append("Is Win16 = " & bc.Win16 & "<br>") strLabel.Append("Is Win32 = " & bc.Win32 & "<br>") strLabel.Append("支持 Frames = " & bc.Frames & "<br>") strLabel.Append("支持 Tables = " & bc.Tables & "<br>") strLabel.Append("支持 Cookies = " & bc.Cookies & "<br>") strLabel.Append("支持 VB Script = " & bc.VBScript & "<br>") strLabel.Append("支持 JavaScript = " & bc.JavaScript & "<br>") strLabel.Append("支持 Java Applets = " & bc.JavaApplets & "<br>") strLabel.Append("支持 ActiveX Controls = " & bc.ActiveXControls & "<br>") strLabel.Append("CDF = " & bc.CDF & "<br>") strLabel.Append("W3CDomVersion = " + bc.W3CDomVersion.ToString + "<br>") strLabel.Append("UserAgent = " + Request.UserAgent + "<br>") strLabel.Append("UserLanguages = " + Request.UserLanguages(0).ToString + "<br>") strLabel.Append("<hr color='#000099'>") strLabel.Append("客户端计算机基本配置:<br>") strLabel.Append("UserHostName = " + Request.UserHostName + "<br>") strLabel.Append("UserHostAddress = " + Request.UserHostAddress + "<br>") Label1.Text = strLabel.ToString() End If End Sub End Class

C#代码

ClientPeek.aspx

<%@ Page language="c#" EnableViewState = "false" Codebehind="ClientPeek.aspx.cs" AutoEventWireup="false" Inherits="eMeng.Exam.ClientPeek" %> <!doctype HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <html> <head> <title>检测客户端显示器分辨率、浏览器类型和客户端IP</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <meta content="Microsoft Visual Studio 7.0" name="GENERATOR"> <meta content="C#" name="CODE_LANGUAGE"> <meta content="【孟子E章】:http://xml.sz.luohuedu.net/" name="CopyRight"> <meta content="JavaScript" name="vs_defaultClientScript"> <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema"> <script language=javascript> var PDFPlugin = false; try { pdftest=new ActiveXObject("PDF.PdfCtrl.6"); } catch(e) { PDFPlugin = false } </script> </head> <body id="MyBody" MS_POSITIONING="GridLayout" runat="server"> <form id="browserpeek" runat="server" name="browserpeek"> <asp:label id="Label1" runat="server"></asp:label> </form> </body> </html>

ClientPeek.aspx.cs

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 eMeng.Exam { /// <summary> /// CheckPeek 的摘要说明。 /// </summary> public class ClientPeek : System.Web.UI.Page { protected System.Web.UI.WebControls.Label Label1; protected System.Web.UI.HtmlControls.HtmlGenericControl MyBody; private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 System.Web.UI.WebControls.Button Button1 = new System.Web.UI.WebControls.Button(); if(!IsPostBack) { System.Web.UI.HtmlControls.HtmlInputHidden btnW = new System.Web.UI.HtmlControls.HtmlInputHidden(); System.Web.UI.HtmlControls.HtmlInputHidden btnH = new System.Web.UI.HtmlControls.HtmlInputHidden(); System.Web.UI.HtmlControls.HtmlInputHidden btnPDF = new System.Web.UI.HtmlControls.HtmlInputHidden(); Button1.ID = "Button1"; btnW.Name = "WidthPixel"; btnW.ID = "WidthPixel"; btnH.Name = "HeightPixel"; btnH.ID = "HeightPixel"; btnPDF.Name = "PDF"; btnPDF.ID = "PDF"; this.FindControl("browserpeek").Controls.Add(btnW); this.FindControl("browserpeek").Controls.Add(btnH); this.FindControl("browserpeek").Controls.Add(btnPDF); this.FindControl("browserpeek").Controls.Add(Button1); string scriptString = ""; scriptString += "document.all.browserpeek.WidthPixel.value=window.screen.width;\r\n"; scriptString += "document.all.browserpeek.HeightPixel.value=window.screen.height;\r\n"; scriptString += "document.all.browserpeek.PDF.value=PDFPlugin;\r\n"; this.RegisterOnSubmitStatement("Meng", scriptString); this.MyBody.Attributes.Add("onload", "document.all."+Button1.ClientID+".click();"); } else { this.MyBody.Attributes.Remove("onload"); if(this.FindControl("browserpeek").Controls.Contains(Button1)) { this.FindControl("browserpeek").Controls.Remove(Button1); Button1.Dispose(); } System.Text.StringBuilder strLabel = new System.Text.StringBuilder(); HttpBrowserCapabilities bc = Request.Browser; strLabel.Append("您的浏览器的分辨率为:"); strLabel.Append(Request.Form["WidthPixel"]); strLabel.Append("&#215;"); strLabel.Append(Request.Form["HeightPixel"]); strLabel.Append("<hr color='#000099'>"); strLabel.Append("浏览器基本信息:<br>"); strLabel.Append("Type = " + bc.Type + "<br>"); strLabel.Append("Name = " + bc.Browser + "<br>"); strLabel.Append("Version = " + bc.Version +"<br>"); strLabel.Append("Major Version = " + bc.MajorVersion + "<br>"); strLabel.Append("Minor Version = " + bc.MinorVersion + "<br>"); strLabel.Append("Platform = " + bc.Platform + "<br>"); strLabel.Append("Is Beta = " + bc.Beta + "<br>"); strLabel.Append("Is Crawler = " + bc.Crawler + "<br>"); strLabel.Append("Is AOL = " + bc.AOL + "<br>"); strLabel.Append("Is Win16 = " + bc.Win16 + "<br>"); strLabel.Append("Is Win32 = " + bc.Win32 + "<br>"); strLabel.Append("支持 Frames = " + bc.Frames + "<br>"); strLabel.Append("支持 Tables = " + bc.Tables + "<br>"); strLabel.Append("支持 Cookies = " + bc.Cookies + "<br>"); strLabel.Append("支持 VB Script = " + bc.VBScript + "<br>"); strLabel.Append("支持 JavaScript = " + bc.JavaScript + "<br>"); strLabel.Append("支持 Java Applets = " + bc.JavaApplets + "<br>"); strLabel.Append("支持 ActiveX Controls = " + bc.ActiveXControls + "<br>"); strLabel.Append("CDF = " + bc.CDF + "<br>"); strLabel.Append("W3CDomVersion = " + bc.W3CDomVersion.ToString() + "<br>"); strLabel.Append("UserAgent = " + Request.UserAgent + "<br>"); strLabel.Append("UserLanguages = " + Request.UserLanguages[0].ToString() + "<br>"); strLabel.Append("<hr color='#000099'>"); strLabel.Append("客户端计算机基本配置:<br>"); strLabel.Append("UserHostName = " + Request.UserHostName + "<br>"); strLabel.Append("UserHostAddress = " + Request.UserHostAddress + "<br>"); strLabel.Append("PDF 6.0 插件是否安装 = " + Request.Form["PDF"] + "<br>"); Label1.Text = strLabel.ToString(); } } #region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { // // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.Load += new System.EventHandler(this.Page_Load); } #endregion } }
posted @ 2006-10-09 17:15 绯村剑心 阅读(262) 评论(0) 编辑

由于某些原因,在我们的应用中会遇到一个用户只能在一个地方登录的情况,也就是我们通常所说的单点登录。在ASP.NET中实现单点登录其实很简单,下面就把主要的方法和全部代码进行分析。

实现思路

利用Cache的功能,我们把用户的登录信息保存在Cache中,并设置过期时间为Session失效的时间,因此,一旦Session失效,我们的Cache也过期;而Cache对所有的用户都可以访问,因此,用它保存用户信息比数据库来得方便。

查看示例

SingleLogin.aspx代码

<%@ Page language="c#" Codebehind="SingleLogin.aspx.cs" AutoEventWireup="false" Inherits="eMeng.Exam.SingleLogin" %> <!doctype HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <html> <head> <title>单点登录测试</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <meta http-equiv="Author" content="孟子E章"> <meta http-equiv="WebSite" content="http://dotnet.aspx.cc/"> <style> H3 { FONT: 17px 宋体 } INPUT { FONT: 12px 宋体 } SPAN { FONT: 12px 宋体 } P { FONT: 12px 宋体 } H4 { FONT: 12px 宋体 } </style> </head> <body MS_POSITIONING="GridLayout"> <form id="Form1" method="post" runat="server"> <div align="center"> <h3>单点登录测试</h3> <p>用户名称:<asp:textbox id="UserName" runat="server"></asp:textbox></p> <p>用户密码:<asp:textbox id="PassWord" runat="server" TextMode="Password"></asp:textbox></p> <p><asp:button id="Login" runat="server" Text=" 登 录 "></asp:button></p> <p><asp:label id="Msg" runat="server"></asp:label></p> </div> </form> </body> </html>

SingleLogin.aspx.cs代码

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 eMeng.Exam { /// <summary> /// SingleLogin 的摘要说明。 /// 实现单点登录 /// </summary> public class SingleLogin : System.Web.UI.Page { protected System.Web.UI.WebControls.TextBox UserName; protected System.Web.UI.WebControls.TextBox PassWord; protected System.Web.UI.WebControls.Label Msg; protected System.Web.UI.WebControls.Button Login; private void Page_Load(object sender, System.EventArgs e) { // 实际例子可访问: // http://dotnet.aspx.cc/Exam/SingleLogin.aspx } #region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { InitializeComponent(); base.OnInit(e); } /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.Login.Click += new System.EventHandler(this.Login_Click); this.Load += new System.EventHandler(this.Page_Load); } #endregion private void Login_Click(object sender, System.EventArgs e) { // 作为唯一标识的Key,应该是唯一的,这可根据需要自己设定规则。 // 做为测试,这里用用户名和密码的组合来做标识;也不进行其它的错误检查。 // 生成Key string sKey = UserName.Text + "_" + PassWord.Text; // 得到Cache中的给定Key的值 string sUser = Convert.ToString(Cache[sKey]); // 检查是否存在 if (sUser == null || sUser == String.Empty) { // Cache中没有该Key的项目,表名用户没有登录,或者已经登录超时 // 注意下面使用的TimeSpan构造函数重载版本的方法,是进行是否登录判断的关键。 TimeSpan SessTimeOut = new TimeSpan(0,0,System.Web.HttpContext.Current.Session.Timeout,0,0); HttpContext.Current.Cache.Insert(sKey,sKey,null,DateTime.MaxValue,SessTimeOut, System.Web.Caching.CacheItemPriority.NotRemovable,null); Session["User"] = sKey; // 首次登录,您可以做您想做的工作了。 Msg.Text=" <h4 style='color:red'>嗨!欢迎您访问<a href='http://dotnet.aspx.cc/'>【孟宪会之精彩世界】"; Msg.Text += "</a>,祝您浏览愉快!:)</h4> "; } else { // 在 Cache 中发现该用户的记录,表名已经登录过,禁止再次登录 Msg.Text=" <h4 style='color:red'>抱歉,您好像已经登录了呀:-(</h4> "; return; } } } }
posted @ 2006-10-09 17:12 绯村剑心 阅读(851) 评论(2) 编辑

对于加载时间比较长的ASP.NET页面,我们可以在客户端浏览器中显示进度条来显示页面正在装载。下面就是具体的实现过程:

  1. 新建项目,名字为WebPortal,在项目类型中选择Visual C#项目或者Visual Basic项目都可;
  2. 在模板类型中选择ASP.NET Web应用程序;
  3. 位置里输入:http://localhost/WebPortal;
  4. 添加新项:名字为ShowProgress的Web窗体。
  5. 在您的Web窗体ShowProgress.aspx上添加任何其他的Web服务器控件。
  6. 在ShowProgress.aspx上单击右键,点“查看代码”,在最上面输入:
    Visual C# .NET代码 using System.Threading; Visual Basic .NET代码 Imports System.Threading
  7. 在Page_Load事件里输入: Visual C# .NET代码 Response.Write(" <div id='mydiv' >"); Response.Write("_"); Response.Write("</div> "); Response.Write(" <script>mydiv.innerText = '';</script> "); Response.Write(" <script language=javascript>;"); Response.Write("var dots = 0;var dotmax = 10;function ShowWait()"); Response.Write("{var output; output = '正在装载页面';dots++;if(dots>=dotmax)dots=1;"); Response.Write("for(var x = 0;x <dots;x++){output += '&#183;';}mydiv.innerText = output;}"); Response.Write("function StartShowWait(){mydiv.style.visibility = 'visible'; "); Response.Write("window.setInterval('ShowWait()',1000);}"); Response.Write("function HideWait(){mydiv.style.visibility = 'hidden';"); Response.Write("window.clearInterval();}"); Response.Write("StartShowWait();</script> "); Response.Flush(); Thread.Sleep(10000); Visual Basic .NET代码 Response.Write(" <div id='mydiv' >") Response.Write("_") Response.Write("</div> ") Response.Write(" <script>mydiv.innerText = '';</script> ") Response.Write(" <script language=javascript>;") Response.Write("var dots = 0;var dotmax = 10;function ShowWait()") Response.Write("{var output; output = '正在装载页面';dots++;if(dots>=dotmax)dots=1;") Response.Write("for(var x = 0;x <dots;x++){output += '&#183;';}mydiv.innerText = output;}") Response.Write("function StartShowWait(){mydiv.style.visibility = 'visible'; ") Response.Write("window.setInterval('ShowWait()',1000);}") Response.Write("function HideWait(){mydiv.style.visibility='hidden';") Response.Write("window.clearInterval();}") Response.Write("StartShowWait();</script> ") Response.Flush() Thread.Sleep(10000)
  8. 在ShowProgress.aspx窗体的html的中输入: <script> HideWait(); </script>
  9. 点在浏览器中查看即可。
posted @ 2006-10-09 16:27 绯村剑心 阅读(194) 评论(0) 编辑

下面是模仿的DropDownList的效果,支持图片,多列,换行等。查看例子

WebDropDownList.aspx

<%@ Page language="c#" Codebehind="WebDropDownList.aspx.cs"validateRequest="false" AutoEventWireup="false" Inherits="eMeng.WebDropDownList" %> <html> <head> <title>模拟下拉列表框</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <style>BODY { FONT: 12px 宋体 } TD { FONT: 12px 宋体 } DIV { FONT: 12px 宋体 } LABEL { PADDING-RIGHT: 0px; PADDING-LEFT: 4px; PADDING-BOTTOM: 0px; PADDING-TOP: 3px; HEIGHT: 19px } .link_box { CURSOR: default; TEXT-ALIGN: left } .link_head { BORDER-RIGHT: 2px inset; BORDER-TOP: 2px inset; BORDER-LEFT: 2px inset; WIDTH: 100%; BORDER-BOTTOM: 2px inset; HEIGHT: 23px } .link_text { PADDING-LEFT: 2px; BACKGROUND: #fff } .link_arrow0 { BORDER-RIGHT: 2px outset; BORDER-TOP: 2px outset; BACKGROUND: buttonface; FONT: 14px marlett; BORDER-LEFT: 2px outset; WIDTH: 22px; BORDER-BOTTOM: 2px outset; HEIGHT: 100%; TEXT-ALIGN: center } .link_arrow1 { BORDER-RIGHT: buttonshadow 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: buttonshadow 1px solid; PADDING-LEFT: 2px; BACKGROUND: buttonface; PADDING-BOTTOM: 0px; FONT: 14px marlett; BORDER-LEFT: buttonshadow 1px solid; WIDTH: 22px; PADDING-TOP: 2px; BORDER-BOTTOM: buttonshadow 1px solid; HEIGHT: 100%; TEXT-ALIGN: center } .link_value { BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; FILTER: alpha(opacity:0); VISIBILITY: hidden; OVERFLOW-X: hidden; OVERFLOW: auto; BORDER-LEFT: 1px solid; BORDER-BOTTOM: 1px solid; POSITION: absolute } .link_record0 { BORDER-TOP: #eee 1px solid; PADDING-LEFT: 2px; BACKGROUND: #fff; WIDTH: 100%; COLOR: #000; HEIGHT: 20px } .link_record1 { BORDER-TOP: #047 1px solid; PADDING-LEFT: 2px; BACKGROUND: #058; WIDTH: 100%; COLOR: #fe0; HEIGHT: 20px } </style> <script> var dropShow=false var currentID function dropdown(el){ if(dropShow){ dropFadeOut() }else{ currentID=el el.style.visibility="visible" dropFadeIn() } } function dropFadeIn(){//选单淡入的效果 if(currentID.filters.alpha.opacity<100){ currentID.filters.alpha.opacity+=20 fadeTimer=setTimeout("dropFadeIn()",50) }else{ dropShow=true clearTimeout(fadeTimer) } } function dropFadeOut(){//选单淡出的效果 if(currentID.filters.alpha.opacity>0){ clearTimeout(fadeTimer) currentID.filters.alpha.opacity-=20 fadeTimer=setTimeout("dropFadeOut()",50) }else{ dropShow=false currentID.style.visibility="hidden" } } function dropdownHide(){ if(dropShow){ dropFadeOut() dropShow=false } } function hiLight(el){//高亮度显示指标位置 if(dropShow){ for(i=0;i<el.parentelement.childnodes.length;i++){ el.parentElement.childNodes(i).className="link_record0" } el.className="link_record1" } } function CheckMe(el){//替换显示内容 document.all.text1.innerText=el.innerText } document.onclick=dropdownHide </script> </head> <body text="#000000" onload="document.all.form1.reset()"> <div style="padding:10px;border-bottom:2px solid red">模拟下拉框</div> <form id="form1" onsubmit="alert(city.value)" runat="server"> <table> <tr> <td> <div class="link_box" onselectstart="return false" style="WIDTH: 100px"> <div class="link_head" onclick="dropdown(value1)"> <table height="100%" cellSpacing="0" cellPadding="0" width="100%" border="0"> <tr> <td> <div class="link_text"><nobr><label id="text1">请选择?</label></nobr></div> </td> <td align="right" width="22"> <div onmouseup="this.className='link_arrow0'" class="link_arrow0" onmousedown="this.className='link_arrow1'" onmouseout="this.className='link_arrow0'">6</div> </td> </tr> </table> </div> <div class="link_value" id="value1" style="WIDTH: 500px; HEIGHT: 300px"> <asp:datagrid id="DataGrid1" runat="server" AutoGenerateColumns="False" Font-Size="12px" Width="100%" ShowHeader="False"> <columns> <asp:boundcolumn DataField="Title" SortExpression="Title" DataFormatString="<img src='http://dotnet.aspx.cc/Images/meng.gif' align='absmiddle'> {0}"> </asp:boundcolumn> <asp:boundcolumn DataField="CreateDate" SortExpression="CreateDate" HeaderText="" DataFormatString="{0:yyyy年MM月dd日}"></asp:boundcolumn> </columns> </asp:datagrid> <div id="mx"> <div class="link_record0" onmouseover="hiLight(this)" onclick="CheckMe(this);document.all.form1.city.value=this.innerText"><label>北京市</label></div> <div class="link_record0" onmouseover="hiLight(this)" onclick="CheckMe(this);document.all.form1.city.value=this.innerText"><label>上海市</label></div> <div class="link_record0" onmouseover="hiLight(this)" onclick="CheckMe(this);document.all.form1.city.value=this.innerText"><label>河南省</label></div> <div class="link_record0" onmouseover="hiLight(this)" onclick="CheckMe(this);document.all.form1.city.value=this.innerText"><label>深圳市</label></div> <div class="link_record0" onmouseover="hiLight(this)" onclick="CheckMe(this);document.all.form1.city.value=this.innerText"><label>大连市</label></div> <div class="link_record0" onmouseover="hiLight(this)" onclick="CheckMe(this);document.all.form1.city.value=this.innerText"><label>云南省</label></div> </div> </div> </div> </td> <td><input type="hidden" value="您尚未选择" name="city"> <input type="submit" value="确定"> </td> </tr> </table> </form> </body> </html>

WebDropDownList.aspx.cs

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; using System.Data.OleDb; namespace eMeng { /// <summary> /// ShowList 的摘要说明。 /// </summary> public class WebDropDownList : System.Web.UI.Page { protected System.Web.UI.WebControls.DataGrid DataGrid1; private void Page_Load(object sender, System.EventArgs e) { DataGrid1.Columns[0].ItemStyle.Width = Unit.Pixel(400); DataGrid1.Columns[1].ItemStyle.Width = Unit.Pixel(100); Data_Bind(); } public void Data_Bind() { Response.CacheControl = "no-cache"; Response.Expires = -1; try { string strSQL = "SELECT id,objectGuid,Title,CreateDate,HitCount FROM Document ORDER BY id DESC"; string cnString = (new Connection()).ConnectionString; OleDbConnection cn = new OleDbConnection(cnString); cn.Open(); OleDbCommand cmd = new OleDbCommand(strSQL, cn); DataGrid1.DataSource = cmd.ExecuteReader(CommandBehavior.CloseConnection); DataGrid1.DataBind(); cn.Close(); cn.Dispose(); cn = null; cmd.Dispose(); cmd = null; } catch(OleDbException myOleDbException) { Response.Write("错误:" + myOleDbException.Message + ":" + myOleDbException.HelpLink); Response.End(); } } private void DataGrid1_ItemDataBound(object sender,System.Web.UI.WebControls.DataGridItemEventArgs e) { if( e.Item.ItemIndex != -1 ) { e.Item.Attributes.Add("onmouseover", "this.bgColor='#C1D2EE'"); e.Item.Attributes.Add("onclick", "document.all.text1.innerText=this.cells[0].innerText;document.all.form1.city.value=this.cells[0].innerText;"); if (e.Item.ItemIndex % 2 == 0 ) { e.Item.Attributes.Add("bgcolor", "#FFFFFF"); e.Item.Attributes.Add("onmouseout", "this.bgColor=document.getElementById('DataGrid1').getAttribute('singleValue')"); } else { e.Item.Attributes.Add("bgcolor", "oldlace"); e.Item.Attributes.Add("onmouseout", "this.bgColor=document.getElementById('DataGrid1').getAttribute('oldValue')"); } } else { DataGrid1.Attributes.Add("oldValue", "oldlace"); DataGrid1.Attributes.Add("singleValue", "#FFFFFF"); } } #region Web Form Designer generated code override protected void OnInit(EventArgs e) { // // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.DataGrid1.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid1_ItemDataBound); this.Load += new System.EventHandler(this.Page_Load); } #endregion } }
posted @ 2006-10-09 15:16 绯村剑心 阅读(282) 评论(0) 编辑