实例详解jQuery结合GridView控件的使用方法_jquery

jQuery是一种非常强大的客户端JS编程技术,这里不想过多阐述它的相关背景知识,只想简单演示一下如何与asp.net的控件结合开发。
比如,我们要做一个下面如图所示的功能,效果是状态、编号、数字1、数字2、平均值所有的项都是通过后台绑定,如何点击checkbox按钮,来实现自动计算当前行两个数字的平均值呢?前提是用jQuery来实现?

我们直接在页面的Page_Load事件中输入如下代码:

protected void Page_Load(object sender, EventArgs e)
{
  if (!Page.IsPostBack)
  {
    DataTable dt = new DataTable();
    dt.Columns.AddRange(new DataColumn[] {
      new DataColumn("id",typeof(Int32)),
      new DataColumn("num1",typeof(Int32)),
      new DataColumn("num2",typeof(Int32))
    }); 

    DataRow dr = null;
    dr = dt.NewRow();
    dr["id"] = 1;
    dr["num1"] = 20;
    dr["num2"] = 40;
    dt.Rows.Add(dr); 

    dr = dt.NewRow();
    dr["id"] = 2;
    dr["num1"] = 40;
    dr["num2"] = 30;
    dt.Rows.Add(dr); 

    this.GridView1.DataSource = dt.DefaultView;
    this.GridView1.DataBind();
  }
}

前台页面body部分:

<body>
  <form id="form1" runat="server">
    <div>
      <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
        <Columns>
          <asp:TemplateField HeaderText="状态">
            <ItemTemplate>
              <asp:CheckBox ID="checkstate" runat="server" />
            </ItemTemplate>
          </asp:TemplateField>
          <asp:TemplateField HeaderText="编号">
            <ItemTemplate>
              <asp:Label ID="lblId" runat="server"> <%#Eval("id") %></asp:Label>
            </ItemTemplate>
          </asp:TemplateField>
          <asp:TemplateField HeaderText="数字1">
            <ItemTemplate>
              <asp:Label ID="lblNum1" runat="server"> <%#Eval("num1") %></asp:Label>
            </ItemTemplate>
          </asp:TemplateField>
          <asp:TemplateField HeaderText="数字2">
            <ItemTemplate>
              <asp:Label ID="lblNum2" runat="server"> <%#Eval("num2") %></asp:Label>
            </ItemTemplate>
          </asp:TemplateField>
          <asp:TemplateField HeaderText="平均值">
            <ItemTemplate>
              <asp:TextBox ID="avg_value" runat="server" />
            </ItemTemplate>
          </asp:TemplateField>
        </Columns>
      </asp:GridView>
    </div>
  </form>
</body> 

关键的在页面的head部分,输入如下代码就可以实现如图效果了。

<script src="js/jquery-1.4.2.js"></script>
<script type="text/javascript">
  $(function () {
    $("#<%=GridView1.ClientID%>").find("tr td input[type=checkbox]").each(function () {
      $(this).bind("click", function () {
        if (this.checked) {
          var id = $(this).parent().parent().find("span[id*=lblId]").text();
          var num1 = $(this).parent().parent().find("span[id*=lblNum1]").text();
          var num2 = $(this).parent().parent().find("span[id*=lblNum2]").text(); 

          var result = (parseFloat(num1) + parseFloat(num2)) / 2;
          $(this).parent().parent().find("input[id*=avg_value]").val(result);
        } else {
          $(this).parent().parent().find("input[id*=avg_value]").val("");
        }
      });
    });
  });
</script> 

你会发现jQuery的代码读着很轻松,很容易理解。而且代码也很优美,最关键的是兼容性很好。
再附一个简单点的例子,这是一个静态html页面,看jQuery是如何发挥威力的。效果是点击每一行的按钮时,弹出当前行的text里面的value。

<html>
<head>
<script type="text/javascript" src="jquery-1.4.2.js"></script>
 <script type="text/javascript">
    $(function(){
      $("table tr td").each(function(){
        $(this).find("[type=button]").click(function(){
          alert($(this).parent().parent().find("[type=text]").val());
        });
      });
    });
 </script>
</head>
<body>
<table>
 <tr>
  <td>1</td>
  <td><input type=text value="数据1" /></td>
  <td><input type=button onclick="GetTest()" value="获取" /></td>
 </tr>
 <tr>
  <td>2</td>
  <td><input type=text value="数据2" /></td>
  <td><input type=button onclick="GetTest()" value="获取" /></td>
 </tr>
</table>
</body>
</html>

试想,如果我们用js去做,将会很麻烦,而且还要考虑各种浏览器的兼容性。看到这里不得不感叹一句,jQuery虽然短小,但是相当强大啊。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索jquery
gridview
gridview控件使用详解、gridview使用详解、gridview属性详解、android gridview详解、gridview详解,以便于您获取更多的相关知识。

时间: 2024-10-11 03:35:03

实例详解jQuery结合GridView控件的使用方法_jquery的相关文章

实例详解jQuery Mockjax 插件模拟 Ajax 请求_jquery

1. 原理 jquery-mockjax是用于mock 前台ajax向后台请求的返回数据. 原理很简单 在你js代码要发送ajax请求的地方断点一下,然后比较在[引入jquery-mockjax] 和 [没有引入jquery-mockjax]的情况下$.ajax.toString()的值情况. 很明显,引入jquery-mockjax时,这个mock库会对jquery提供的ajax函数做替换.这样就很容易能mock起来. 在实际的开发过程中,前端后台协商好了统一的接口,就各自开始自己的任务了.这

关于GridView控件的使用方法

问题描述 GridView控件的使用方法 解决方案 解决方案二:列的分类a:BoundField:适合绑定数据表的源列b:TempleteField:模板列:具体组成(1):HeadTemplete头模板(2):FooterTemplete尾模板(3):ItemTemplete项模板绑定表达式(1):分类:前期绑定(静态绑定)和后期绑定(动态绑定)<%#Eval("字段名或者属性名")%>只读绑定方法<%#Bind("同上"%>可读写的绑定方

实例详解PHP中html word 互转的方法_php实例

下面一段代码给大家介绍php将html转入word中,具体内容如下所示: 这是经过测试的,这种方法有一点不好,html页面代码要写在php中,不过好歹能运行,看程序 <?php class word{ function start(){ ob_start(); echo '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office

jQuery EasyUI中的日期控件DateBox修改方法_jquery

jQuery EasyUI中的日期控件DateBox很好用的,首先需要引入jquery文件,代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Basic DateBox - jQuery EasyUI Demo</title> <link rel="stylesheet" type="text/cs

jquery对所有input type=text的控件赋值实现方法_jquery

如下所示: function resetData() { $("input[type=text]").each( function() { $(this).attr("value",""); } ); } 以上这篇jquery对所有input type=text的控件赋值实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持. 以上是小编为您精心准备的的内容,在的博客.问答.公众号.人物.课程等栏目也有的相关内容,欢迎继

浅谈EasyUI常用控件的禁用方法_jquery

如下所示: input和textarea: $('#controlid').prop('disabled', true); $('input:not(:button,:hidden)').prop('disabled', true);//禁用除button和hidden控件外的所有input控件 $('textarea').prop('disabled', true); radio和checkbox: $('input:radio[name="radioname"]').prop('d

实例详解jQuery表单验证插件validate_jquery

validate插件是一个基于jquery的表单验证插件了里面有许多的常用的一些验证方法我们可以直接调用,具体的我们一起来看看. 例子,html代码 <!DOCTYPE html> <html lang="en"> <head> <include file="Common/Header" /> <meta charset="utf-8"> <script src="/jq

详解ASP.NET-----Repeater数据控件的用法总结_实用技巧

一.Repeater控件的用法流程及实例: 1.首先建立一个网站,新建一个网页index.aspx. 2.添加或者建立APP_Data数据文件,然后将用到的数据库文件放到APP_Data文件夹中. 3.打开数据库企业管理器,数据库服务器为local(.),然后将APP_Data文件夹中的数据库附加到数据库服务器中. 4.添加Ling to  SQL类. 5.打开视图,服务器资源管理器,右击数据库服务器,选择添加连接,然后选择数据库服务器.数据库类型,及数据库表,然后完成. 6.将需要用到的表,全

实例详解jQuery的无new构建_jquery

jQuery的无new构建 jQuery框架的核心就是从HTML文档中匹配元素并对其执行操作. 回想一下使用 jQuery 的时候,实例化一个 jQuery 对象的方法: // 无 new 构造 $('#test').text('Test'); // 当然也可以使用 new var test = new $('#test'); test.text('Test'); 大部分人使用 jQuery 的时候都是使用第一种无 new 的构造方式,直接 $('') 进行构造,这也是 jQuery 十分便捷的