`
comrd
  • 浏览: 1447 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

jquery实现点击GridView弹出可以拖拉的div,异步处理后台数据并返回结果显示在div里

阅读更多

 


前台页面代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Web._Default" %>

<html>
<head runat="server">
    <title>弹出明细的div效果</title>

    <script src="jquery-1.3.2.js" type="text/javascript"></script>

    <style type="text/css">
        table tr td
        {
            padding: 10px;
        }
    </style>

    <script type="text/javascript">
        $(function() {
            $("#GridView1 tr td").click(function() {
                //获取点击的文本
                var val = $(this).text();

                var before_val = $(this).prev("td");//获取点击的单元格当前行的前一列
                alert("前一列值:" + before_val.text());//获取前一列值

              //**************************BEGIN****************************
                var index = $(this)[0].cellIndex; //点击单元格的当前列index
                var head_text = $("#GridView1 tr th:eq(" + index + ")").text(); //表头的列头内容
                alert("所在列名:"+head_text);//这里就是表头内容,你点击那个单元格所在列的列表头(比如我这里的测试数据表头有:id、name、age)
                //**********************END**********************************

                //清空提示的div
                $("#tips").remove();
                //获取div距离左边值
                var left = $(this).offset().left + 10;
                //获取div距离顶端的值
                var top = $(this).offset().top + 25;
                //动态创建div,并添加到body里
                $("body").append(create_div(left, top));
                //添加拖动事件
                drag_div("tips");

                //a标签的关闭事件
                $("#tips a").click(function() {
                    //$("#tips").fadeOut("slow");//有效果的关闭
                    $("#tips").remove(); //没效果的关闭
                });

                //异步请求
                $.ajax({
                    type: "POST",
                    url: "DataRespones.ashx", //将后台操作放在此文件里
                    data: "name=" + val,//这里是传递到后台的参数,格式为:key=value 有多个参数就用&隔开,如何前台获取到的数值你不能传到后台,那我无语了。
                    beforeSend: function() {
                        $("#tips").append("<span id='s' style='font-size:12px;'>请稍后……</span>"); //增加超时后提示
                    },
                    success: function(msg) {
                        $("span").remove();
                        $("#tips").append("<span>通过异步请求返回的值:</span><span style='color:red;'>" + msg + "</span>");
                    },
                    complete: function() {
                        $("#tips #s").remove();
                    }
                });
            });
        });

        //拖动div
        function drag_div(id) {
            var _move, _x, _y;

            $("#" + id).mousedown(function(e) {
                _move = true;
                _x = e.pageX - parseInt($("#" + id).css("left"));
                _y = e.pageY - parseInt($("#" + id).css("top"));
                $("#" + id).fadeTo(20, 0.25); //点击后开始拖动并透明显示
            });

            $(document).mousemove(function(e) {
                $("#" + id).css("cursor", "move");
                if (_move) {
                    var x = e.pageX - _x; //移动时根据鼠标位置计算控件左上角的绝对位置
                    var y = e.pageY - _y;
                    $("#" + id).css({ top: y, left: x }); //控件新位置
                }
            }).mouseup(function() {
                $("#" + id).css("cursor", "default");
                _move = false;
                $("#" + id).fadeTo("fast", 1); //松开鼠标后停止移动并恢复成不透明
            });
        }

        //创建提示div
        function create_div(left, top) {
            var html = "<div id='tips' style='left:" + left + "px;top:" + top + "px;width:120px;height:100px;font-size:12px; padding:5px; border:1px solid #9ECD2A;position:absolute;background:#EDECE1;'><a href='javascript:void(0)'>关闭</a><br/><br/></div>";
            return html;
        }
    </script>

</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:GridView ID="GridView1" runat="server" Width="200" Height="50" HorizontalAlign="Center"
            RowStyle-HorizontalAlign="Center">
        </asp:GridView>
    </div>
    </form>
</body>
</html>

 

后台ashx代码:

 

 

using System;
using System.Collections;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;
using System.Threading;

namespace Web
{

    public class DataRespones : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            string result = string.Empty;

            string name=context.Request["name"];//从前台发送过来的值

            result = SimulationDataBase(name);//将获取到的值再去查数据库,将查询的值以字符串形式返回给前台。
            context.Response.Write(result);
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }

        /// <summary>
        /// 模拟操作数据库(根据你的实际情况将数据库操作放在此处操作,或以同样的方式自己创建一个方法)
        /// </summary>
        /// <param name="name">前台传过来的值</param>
        /// <returns>返回给前台用的字符串</returns>
        private string SimulationDataBase(string name)
        {
            string temp = string.Empty;
            switch (name)
            {
                case "张三":
                    temp= "好好学习";

                    Thread.Sleep(2000);//人为手工模拟超时延迟。前台会出现"请稍后……"字样
                    break;
                case "王五":
                    temp = "天天向上";
                    break;
                default:
                    temp = "没有可查询的数据";
                    break;
            }
            return temp;
        }
    }
}

 完整的项目代码以下:

分享到:
评论

相关推荐

    JQuery+Ajax实现GridView的显示详细内容

    总结起来,通过结合使用jQuery和Ajax,我们可以实现在不刷新页面的情况下,动态加载并显示GridView控件的详细内容。这种做法提高了网页的响应速度,提升了用户的使用体验。在实际项目中,还可以根据需求进一步优化,...

    Jquery+ajax请求data显示在GridView上(asp.net)

    在ASP.NET环境中,jQuery与AJAX的结合使用可以创建出高效、动态的用户界面,而GridView控件则是展示数据的常用工具。在这个示例中,我们看到如何通过jQuery的AJAX请求获取数据,并将结果填充到GridView中,同时提供...

    基于jQuery的控件源码

    两个视图分别用两个Div包裹,控制div的显示隐藏即可以切换视图了 3、树控件 支持静态的树,即一次性将全部数据加载到客户端。 异步树,即一次只加载一级或若干级节点,子节点可以异步加载数据。 Checkbox树...

    JQuery脚本制作星级评定

    7. **Ajax交互**:如果需要将评分提交到服务器,可以使用JQuery的`$.ajax()`函数发送异步请求,将评分数据传输到后台。 在实际的项目中,可能会用到一些现成的插件,如`rateYo`或`jQuery Star Rating Plugin`,它们...

    asp.net的新闻前台显示,后台对其增删查改

    4. GridView控件:在ASP.NET Web Forms中,GridView常用于显示和编辑数据,如新闻列表。后台可以通过代码绑定新闻数据源,前台用户可以直接查看和操作新闻。 5. CSS布局:利用CSS实现响应式设计,使新闻页面适应...

    利用jQuery 实现GridView异步排序、分页的代码

    每次请求备份管理页面时,服务端会把所以的备份还原信息都传到客户端,然后ui.tabs将两种信息折叠起来分别显示,好在ui.tabs给我提供ajax功能,我们的每个tab可以直接应用另外一个页面 如: 代码如下: &lt;div id=”...

    ASP.NET网站后台

    这些控件如TextBox、Button、GridView等,能够处理用户输入,进行数据验证,并与数据库进行交互,大大简化了网页开发过程。 其次,CSS在项目中的作用是控制页面的样式和布局。通过定义类选择器、ID选择器等,开发者...

    前台刷新updatePanel

    在此方法中,处理业务逻辑并返回更新后的数据,通常是以JSON格式。 5. **处理响应**: 当服务器返回响应时,JavaScript需要捕获这个响应,并将更新的数据应用到前端的DOM元素上。可以使用`$.parseJSON()`解析JSON...

    ScrollGridView

    在ASP.NET开发中,GridView控件是一个非常常用的数据展示组件,尤其在处理表格数据时。本文将详细讨论如何实现一个名为“ScrollGridView”的功能,它包括固定表头、冻结列和固定列,以提供更好的用户体验。 一、...

    使用带有Entity Framework和MySQL的MVC创建基于div的基于JSON数据的网格

    在这个项目中,我们将使用jQuery来处理用户的交互,比如点击按钮进行排序,以及异步加载更多数据。Ajax技术允许我们在不刷新整个页面的情况下更新网格内容,提升用户体验。 在实现过程中,`Create-a-div-based-grid...

    asp.net GridView的删除对话框的两种方法

    在事件处理函数中,我们可以检查每一行的类型,如果它是数据行(`DataControlRowType.DataRow`),则可以为删除按钮添加点击事件处理程序,显示一个JavaScript确认对话框。 以下是一个示例: ```csharp protected ...

    NET使用JQGrid引用Bootstrap

    在.NET开发环境中,引入JQGrid并结合Bootstrap可以创建出美观且功能强大的数据展示和管理界面。JQGrid是一款基于jQuery的开源JavaScript组件,用于在网页上动态展示和操作表格数据,而Bootstrap则是一个流行的前端...

    jqgird dwz 框架扩展

    通过DWZ的事件机制,可以在jqGrid的某些操作(如点击行、点击按钮)时触发相应的行为,实现复杂的功能。 总结,jqGrid与DWZ框架的整合能为Web应用带来高效的数据管理和用户友好的界面。通过理解两者的基本用法和...

    基于jQuery的控件

    两个视图分别用两个Div包裹,控制div的显示隐藏即可以切换视图了 3、树控件 支持静态的树,即一次性将全部数据加载到客户端。 异步树,即一次只加载一级或若干级节点,子节点可以异步加载数据。 Checkbox树(可能是...

    UpdatePanelBnk

    当用户触发事件(如按钮点击)时,这些函数会发送请求到PHP脚本,脚本处理数据并返回结果。例如: ```javascript $('#myButton').click(function() { $.ajax({ url: 'update_data.php', type: 'POST', data: ...

Global site tag (gtag.js) - Google Analytics