在 IE6 和其他浏览器中可隐藏在 DIV 标签下方的下拉列表
一个在ASP.NET中下拉列表,你可以在IE6和其他浏览器中隐藏在DIV标签下
引言
这是一个努力复制和改进MS ASP.Net 下拉列表控件的功能,用于在IE 6浏览器上运行的Web应用程序。它支持与MS下拉列表控件类似的功能。这是一个进行中的工作。通过下载和研究演示项目中的代码,您将看到将代码实现到您自己的项目中是多么简单。以下是该控件的几个屏幕截图以及关于其用法的说明。
背景
作为开发人员,我们经常会遇到具有限制的Microsoft ASP.Net控件。一个这样的控件是下拉列表或DDL,当在IE6浏览器中使用时。问题是,我们遇到了一个DDL控件显示在另一个控件之上,并且无法通过简单地为控件分配Z-index来修复。这是IE6的一个众所周知的错误,试图将div绝对定位在选择控件的顶部。正如你可能猜到的,Microsoft在IE 7和8中修复了这个问题。但像我们大多数开发人员一样,你可能也有Web应用程序,你希望某些用户使用IE 6浏览器访问你的应用程序;在这种情况下,你将遇到DDL的限制。像许多开发人员一样,我在CodeProject和其他网站上搜索了一个类似于本文中的控件,但找不到。所以,我开始创建我自己的。我需要一个DDL控件,该控件保留了MS版本的许多标准功能,并增加了使用Z-indexing控制DDL的功能。
使用代码
1. 将项目代码下载到目录中
2. 在Microsoft Visual Studio 2008中打开项目
3. 在Default.aspx.cs中编辑连接字符串以反映您的数据库服务器和数据库(本例中使用Northwind)。
4. 确保将ARNABDROPDOWNLIST.dll复制到项目的Bin文件夹中。
5. 在Default.aspx页面中注册ARNABDROPDOWNLIST.dll(见下图)。
在页面顶部注册控件,例如...
<cc1:ARNABDROPDOWNLIST Width="250" ID="DropDownList1" ZIndex="2" OnClientChange="test" runat="server" /> ZIndex: You can add zindex value here. OnClientChange: You can add Java Script Client function here .Don’t need to add “()” after Javascript function name. Note : The control does not have server side method. You have to use _dopostback or form.submit() to create postback. Code Behind Part. SqlDataAdapter da = new SqlDataAdapter("select top 10 ProductID,ProductName from Products", con); DataSet ds = new DataSet(); da.Fill(ds); DropDownList1.DataSource = ds.Tables[0]; DropDownList1.DataTextField = "ProductName"; DropDownList1.DataValueField = "ProductID"; DropDownList1.SelectedValue = "5"; Same as asp.net drop down list control. You don’t need to call DataBind() and for now DataSource only support DataTable. After PostBack protected void Button1_Click(object sender, EventArgs e) { lbl1.Text = "Drop Down1 value :" + DropDownList1.SelectedValue; lbl2.Text = "Drop Down2 value :" + DropDownList2.SelectedValue; }
免责声明和鸣谢
此控件和源代码可免费用于商业和非商业软件。但是,您不得出售源代码以获取利润。本文的作者对本源代码或使用本源代码的应用程序直接或间接造成的任何损害概不负责。如果您决定重新分发源代码,请在源代码的某处包含我的姓名和电子邮件。如果您使用此控件创建应用程序,我很乐意收到一封电子邮件,描述它是什么或它的屏幕截图,以便我知道它正在被使用,并且可能作为继续改进此代码/控件的激励。如果您对随附此项目的预编译dll感兴趣,请与我联系,我们可以讨论费用。
注意:我不是一个好的作家。特别感谢Joseph帮助我撰写这篇文章。