惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

N
Netflix TechBlog - Medium
V
Vulnerabilities – Threatpost
Google Online Security Blog
Google Online Security Blog
Hugging Face - Blog
Hugging Face - Blog
L
LINUX DO - 热门话题
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
D
Docker
C
Cyber Attacks, Cyber Crime and Cyber Security
MyScale Blog
MyScale Blog
P
Palo Alto Networks Blog
T
Tenable Blog
P
Privacy International News Feed
Google DeepMind News
Google DeepMind News
小众软件
小众软件
Cisco Talos Blog
Cisco Talos Blog
aimingoo的专栏
aimingoo的专栏
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
A
Arctic Wolf
C
Cybersecurity and Infrastructure Security Agency CISA
C
Cisco Blogs
T
Threat Research - Cisco Blogs
NISL@THU
NISL@THU
The Hacker News
The Hacker News
Project Zero
Project Zero
AWS News Blog
AWS News Blog
Simon Willison's Weblog
Simon Willison's Weblog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Threatpost
V
Visual Studio Blog
The GitHub Blog
The GitHub Blog
The Cloudflare Blog
Last Week in AI
Last Week in AI
Jina AI
Jina AI
Cyberwarzone
Cyberwarzone
The Register - Security
The Register - Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
Vercel News
Vercel News
D
Darknet – Hacking Tools, Hacker News & Cyber Security
MongoDB | Blog
MongoDB | Blog
U
Unit 42
Scott Helme
Scott Helme
A
About on SuperTechFans
WordPress大学
WordPress大学
F
Fortinet All Blogs
大猫的无限游戏
大猫的无限游戏
G
GRAHAM CLULEY
Latest news
Latest news
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
S
Schneier on Security

博客园 - CDplayer

asd 面试技巧 反客为主 推荐:VisualStudio 2005/2008的“Consolas”字体包 net控件中数据导到Excel的格式 首先,我们了解一下excel从web页面上导出的原理。当我们把这些数据发送到客户端时,我们想让客户端程序(浏览器)以excel的格式读取它,所以把mime类型设为:application/vnd.ms-excel,当excel读取文件时会以每个cell的格式呈现数据,如果cell没有规定的格式,则excel会以默认的格式去呈现该cell的数据。这样就给我们提供了自定义数据格式的空间,当然我们必须使用excel支持的格式。下面就列出常用的一些格式: 1) 文本 做事的人总是要挨骂的,挨骂是一件好事。如果一个人不挨骂,肯定因为他没有做事。一个职业经理人,是否因为挨了几次骂就破罐破摔,随波逐流?一个职业经理人,你的责任是把自己的工作做好,作为市场总监,我的责任是告诉公司,明年我的品牌规划、产品规划、宣传形式是什么,这是责任。 托业词汇 [转]三五个人十来条枪 如何走出软件作坊成为开发正规军 赛拜科技 更好的品牌形象设计來增加銷量 20080217 成功人士財富成長15種能力 用户中心 - 博客园 微软免费图书《Introducing Microsoft LINQ》翻译-第4章:LINQ句法基础 查询语法 微软免费图书《Introducing Microsoft LINQ》翻译-Chapter1:語言集成 類型檢查,宣告式編程,透明化不同的類型系統 定义开发流程 和 快速开发模型 Penetration Testing 渗透测试 http://chs.gotdotnet.com/quickstart/aspplus/ A cross-browser freeze-header two-way scrolling DataGrid IT职业规划经验谈
利用div+css在GridView模版列打造可定制的ToolTip风格
CDplayer · 2008-05-16 · via 博客园 - CDplayer

    在项目中,我们经常会遇到需要查看数据表中所有字段详细信息的情况,通常我们会把某些必要的字段如ID等显示出来,然后把其它字段汇总放到DetailView或者另一个页面,然后提供一个“查看详细信息”的LinkButton,抑或是利用脚本弹出另一个Web窗口。这些做法都稍显蹩脚,如果只是为“查看详细信息”而查看详细信息(额,有些拗口),我们还有更好的解决办法,利用div+css来达到类似ToolTip的效果。

    众所周知,一些HTML元素或者ASP.NET控件都有一个叫做ToolTip的属性。这个属性主要是在鼠标移上的时候显示一些提示和描述信息。不幸的是,它不能像InnerHtml属性一样内嵌HTML代码。比如:

        <asp:Image ID="Image1" ImageUrl="~/images/more.gif" ToolTip="<b>抗震救灾 众志成城</b>" runat="server" />
        <asp:Label ID="Label2" runat="server" Text="<b>抗震救灾 众志成城</b>"></asp:Label>

运行效果如图:

     

    并没有达到我们预期的效果,好了,下面我们利用div+cssGridView模板内达到我们想要的效果。

    首先,我们添加一个数据源控件。

        <asp:SqlDataSource
            ID="SqlDataSource1"
            runat="server"
            ConnectionString="<%$ ConnectionStrings:MySqlConnectionString %>"
            ProviderName="System.Data.SqlClient"
            SelectCommand="SELECT * FROM [authors]">
        </asp:SqlDataSource>

         Web.config配置如下:

    <connectionStrings>

        <add name="MySqlConnectionString" connectionString="Data Source=."sqlexpress;AttachDBFilename=|DataDirectory|pubs.mdf;Integrated Security=True" />

    </connectionStrings>

    再添加一个GridView

        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="au_id"

            DataSourceID="SqlDataSource1" AllowPaging="True">

            <Columns>

               <asp:BoundField DataField="au_id" HeaderText="au_id" ReadOnly="True" SortExpression="au_id" />

                <asp:BoundField DataField="au_lname" HeaderText="au_lname" SortExpression="au_lname" />

                <asp:TemplateField HeaderText="au_fname" SortExpression="au_fname">

                    <ItemTemplate>

                                          <%--想要添加的代码--%>                     

                    </ItemTemplate>

                </asp:TemplateField>

            </Columns>

        </asp:GridView>

        Pubs数据库中的authors表有很多字段,我们只在Gridview里面显示前三个,之后,我们重点在au_fname模板列上做文章。

我们要达到这样的效果:每一行的au_fname后面都有一个小图片,鼠标移上时就弹出tooltip,里面有我们想要的详细信息。

首先,我们需要一个总的div容器。

                    <ItemTemplate>

                          <div>  

                          </div>               

                    </ItemTemplate>

    接着绑定要显示的字段:

                    <ItemTemplate>

                           <div>  

                               <asp:Label ID="Label1" runat="server" Text='<%# Bind("au_fname") %>'></asp:Label>

                           </div>               

                    </ItemTemplate>

    接着我们再添加一个div,这个div的作用十分重要,不可或缺,它主要是协调和Label1的布局(display:inline)并且框定tooltip的位置(position:relative),使tooltip不至于在页面上“乱跑”。

                    <ItemTemplate>
                        <div>
                            <asp:Label ID="Label1" runat="server" Text='<%# Bind("au_fname") %>'></asp:Label>
                            <div style="display:inline; position:relative;z-index:1000">
                                <img src="images/more.gif" alt="" />
                                <div id="div<%# Eval("au_id") %>" class="tooltip">
                                    <strong>phone</strong>:<%# Eval("phone")%><br />
                                    <strong>address</strong>:<%# Eval("address")%><br />
                                    <strong>city</strong>:<%# Eval("city")%><br />
                                    <strong>state</strong>:<%# Eval("state")%><br />
                                    <strong>zip</strong>:<%# Eval("zip")%><br />
                                    <strong>contract</strong>:<asp:CheckBox ID="CheckBox1"                  Checked='<%#Convert.ToBoolean(Eval("contract").ToString())%>' runat="server" />
                                </div>  
                            </div>                 
                        </div>                        
                    </ItemTemplate>

        Iddiv<%# Eval("au_id") %>div就是我们要的类似tooltip的容器,它是可定制的,也就是说,它可以是相当复杂的,你可以往里面添加任何你想要的HTML代码。

    编辑模板列,使其对齐:

    position

   

    下一步,我们要利用CSS代码来控制这个div,使其状态在初始时隐藏,当img对象的onmousemove事件发生时显示,onmouseout事件发生时又隐藏。

    下面是CSS代码和Javascript脚本,都很简单。

    <style type="text/css">

        .tooltip

        {

            display: none;

            position: absolute;

            z-index: 1001;

            left: 10px;

            top: 15px;

            width: 170px;

            font-family: Trebuchet MS, Lucida Sans Unicode, Arial, Sans-Serif;

            font-size: 0.8em;

            padding: 3px;

            border: dotted 1px;

            background-color: InfoBackground

        }

</style>

    <script type="text/javascript">

     function showPanel(divName) {

            var ctl = window.document.getElementById(divName);

            ctl.style.display = 'block';

            ctl.scrollIntoView();

     }

     function hidePanel(divName) {

            var ct2 = window.document.getElementById(divName);

            ct2.style.display = 'none';

     }

    </script>

好了,终于完成任务了,看一看实际效果吧。

show

这里有一个问题就是:

      

bug

这样相当难看,请熟悉CSS的朋友给解决一下,谢谢了!

源代码下载:SmartToolTip.zip