`
java2000.net
  • 浏览: 660595 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

带图片的,多列的DropDownList的实现

阅读更多

下面是模仿的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
}
}

分享到:
评论

相关推荐

    带图片的多列DropDownList

    为了实现带图片的多列DropDownList,开发者可能会使用ASP.NET的DropDownList控件,并自定义其模板。在ASPX文件中,他们可能通过ItemTemplate标签来定义每一项的结构,包括文字和图片元素。在代码-behind文件中,他们...

    Flex4.5从浅入深—第一章—第四节DropDownList下拉列表组件运用

    在本节内容中,我们将详细探讨Adobe Flex框架中DropDownList组件的应用,从基础创建到设置带图片的下拉选项。Flex是一个开源的框架,广泛用于开发富互联网应用(Rich Internet Applications, RIA)。Flex 4.5是在Adobe...

    asp.net 小程序

    在这个小项目中,我们主要探讨了几个关键知识点,包括发送邮件及附件、模仿MSN的弹出窗口效果以及实现带有图片和多列的DropdownList。 首先,让我们深入了解一下如何在ASP.NET中实现发送邮件及附件的功能。使用...

    asp.net常用Web服务器控件

    实例 实现多个DropDownList控件的联动 实例 动态添加、删除DropDownList控件选项 4.5 单选按钮的应用 实例 性别选择 实例 网络考试系统中单选题答案的选择 4.6 复选框的应用 实例 登录身份选择 实例 网络考试系统中...

    GridView动态增加行实例.

    GridView控件能够自动绑定到数据源并显示数据,通常包括多行和多列,每列可以包含不同类型的数据显示,如文本、图片或链接等。在本实例中,我们将扩展其功能,使其支持动态添加行,每行内嵌一个DropDownList,这样...

    几个asp.net的经典小例子

    1 带图片的,多列的DropDownList的实现 2 XML2OLEDB范例 3 发送邮件及附件的小例子 4 仿MSN的三种弹出窗口效果范例 5 非数据库数据源实现查询范例 6 服务器端使用RADIO在DATAGRID中得应用 7 ...

    第7章 数据绑定控件

    实例212 GridView自动求和及合并多列多行 单元格 336 实例213 GridView合并行或列单元格的5种 通用方式 338 实例214 GridView删除数据时弹出确认对话框 (含内容提示) 340 实例215 GridView数据源为空时显示表头和 ...

    C#开发经验技巧宝典

    第10章 Web页面设计 221 10.1 网页外观设计 222 0396 将CSS样式表应用到页面中 222 0397 在页面的源码中直接定义...0495 如何实现带滚动条的Panel面板 290 0496 使用Substitution控件在缓存页面插入内容 290

    asp.net专家疑难解答200问源码

    60.如何实现两个或多个DropDownList控件的联动 61.如何实现ListBox控件选项的上移、下移、添加和删除操作 62.如何实现ListBox控件中选项的双击事件 63.如何动态设置ListBox控件中各选项的背景颜色 64.如何在页面...

    ASP.NET程序开发范例宝典(C#)

    通过示例展示如何显示带有水印的图片。 - **示例070**:使用网页控件显示图片。演示如何利用ASP.NET中的Image控件显示图片。 - **示例071**:缩放图片。讲解如何使用C#编程语言调整图片大小。 - **示例072**:...

    asp.net专家疑难解答200问

    如何实现两个或多个DropDownList控件的联动 61.如何实现ListBox控件选项的上移、下移、添加和删除操作 62.如何实现ListBox控件中选项的双击事件 63.如何动态设置ListBox控件中各选项的背景颜色 64....

    C#编程经验技巧宝典

    43 &lt;br&gt;0061 树的实现 44 &lt;br&gt;3.2 排序 48 &lt;br&gt;0062 如何实现选择排序算法 48 &lt;br&gt;0063 如何实现冒泡排序算法 49 &lt;br&gt;0064 如何实现快速排序算法 50 &lt;br&gt;0065 如何实现插入排序算法 ...

    GridView 72般绝技

    26. 图片列:在列中显示数据库存储的图片。 27. 导出:导出GridView数据到Excel、CSV等格式。 28. 高级筛选:通过下拉框、日期选择器等提供高级筛选条件。 29. 自定义排序:实现自定义排序算法,满足特殊需求。 ...

    gridview+72绝技.rar

    13. 联动下拉框:在GridView中嵌入DropDownList,实现联动选择,提高数据关联性。 14. 行选择:添加行选择功能,方便用户选定特定行进行操作。 15. 动态列:根据需求动态生成列,适应不同场景。 16. 搜索功能:...

    gridview72例

    23. 联动效果:与其他控件(如DropDownList)联动,实现下拉框选择后自动刷新GridView数据。 24. 嵌套GridView:在GridView内部嵌套另一个GridView,用于展示子级数据,构建层级结构。 25. 自定义分页控件:可以...

    留言板简单的和复杂的

    - **头像选择**:通过 `&lt;asp:DropDownList runat="server" TabIndex="10" AutoPostBack="True" ID="dlPicSelect" onselectedindexchanged="dlPicSelect_SelectedIndexChanged"&gt;&lt;/asp:DropDownList&gt;` 实现头像的选择...

    C#程序设计复习总结.pdf

    2. **ListBox** 控件:ListBox显示一个可滚动的项目列表,其主要属性有`Items`集合(存储列表项)、`MultiColumn`(是否开启多列显示)、`SelectionMode`(选择模式,如单选或多选)、`SelectedIndex`(当前选中项的...

    AspNetPager.dll

    当使用下拉框显示页索引时(即PageIndexBoxType=DropDownList时),如果总页数超过80页,将在下拉框中只列出部分页索引而不是全部页索引,以防页数太多导致下拉框选项太多而拖慢页面下载和打开速度。页索引下拉框的...

    几个常用控件的使用例程

    列表视图通常用于展示多列数据,而树视图则适合展示具有层级关系的数据。开发者可以添加、删除或修改`ListViewItem`或`TreeNode`,并通过各种事件来响应用户操作。 9. **计时器(Timer)**:计时器控件周期性地触发...

Global site tag (gtag.js) - Google Analytics