JQuery与GridView控件结合示例
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控件结合示例的更多相关文章
- jQuery找到GridView控件ItemTemplate模版内的控件
可以使用下面的方法,jQuery找到GridView控件ItemTemplate模版内的CheckBox: 使用jQuery的find()方法:
- 模仿win10样式,基于jquery的时间控件
工作需要,写了一个基于jquery的时间控件,仿win10系统时间控件格式. 目前基本功能都有了,但时间格式只实现少数,但由于结构设计已经充分优化,填充起来非常容易. 这个控件相对网上其他的时间控件, ...
- 扩展GridView控件——为内容项添加拖放及分组功能
引言 相信大家对GridView都不陌生,是非常有用的控件,用于平铺有序的显示多个内容项.打开任何WinRT应用或者是微软合作商的网站,都会在APP中发现GridView的使用.“Tiles”提供了一 ...
- 027. asp.net中数据绑定控件之 GridView控件
GridView控件支持下面的功能: 绑定至数据源控件, 如SqlDataSource 内置排序功能 内置更新和删除功能 内置分页功能 内置行选择功能 可以编程方式访问GridView对象模型以动态设 ...
- 在GridView控件内文本框实现TextChanged事件
本篇是教你实现GridView控件内的TextBox文本框实现自身的TextChanged事件.由于某些功能的需求,GridView控件内嵌TextBox,当TextBox值发生变化时,触发TextC ...
- 点击CheckBox让Gridview控件在编辑与正常状态之间切换
昨晚快休息时,还有一位网友咨询Insus.NET,他想在开发时,实现一个小功能,就是想让用户在点击Gridview控件第一列的CheckBox之后,GridView进入编辑状态,取消选中的CheckB ...
- 一些基于jQuery开发的控件
基于jQuery开发,非常简单的水平方向折叠控件.主页:http://letmehaveblog.blogspot.com/2007/10/haccordion-simple-horizontal-a ...
- jquery操作select2控件
(一)select2常用的操作:添加.移除.获取选中的value()与text() (1)移除事件:$("#select_id").unbind("change" ...
- jquery 双向select控件bootstrap Dual listbox
http://www.cnblogs.com/hangwei/p/5040866.html -->jquery 双向select控件bootstrap Dual listboxhtt ...
随机推荐
- Codeforces 279 B Books
题意:给出n本书,总的时间t,每本书的阅读时间a[i],必须按照顺序来阅读,问最多能够阅读多少本书 有点像紫书的第七章讲的那个滑动区间貌似 维护一个区间的消耗的时间小于等于t,然后维护一个区间的最大值 ...
- jstl表达式
JSTL标签库 1.什么是JSTL JSTL是apache对EL表达式的拓展(也就是说JSTL依赖EL),JSTL是标签语言!JSTL标签使用以来非常方便, 它与JSP动作标签一样,只不过它不是JSP ...
- PHP学习笔记02——简易计算器
<!DOCTYPE html> <html> <head> <title>PHP简易计算器</title> </head> &l ...
- BZOJ 1555 KD之死
贪心,按t+w排序维护不一定放到拖车上的大根堆. #include<iostream> #include<cstdio> #include<cstring> #in ...
- tornado 实践 - 目录结构
. ├── README.md └── store_management ├── Session.vim ├── auth │ ├── __init__.py │ ├── views.py ├ ...
- (转)每天一个Linux命令(8): tar
通过SSH访问服务器,难免会要用到压缩,解压缩,打包,解包等,这时候tar命令就是是必不可少的一个功能强大的工具.linux中最流行的tar是麻雀虽小,五脏俱全,功能强大. tar命令可以为linux ...
- scala学习笔记(4):占位符
scala 中占位符的用法 1.作为“通配符”,类似Java中的*.如import scala.math._ 2.:_*作为一个整体,告诉编译器你希望将某个参数当作参数序列处理!例如val s = s ...
- 每天一个Linux命令(3): cd
Linux cd 命令可以说是Linux中最基本的命令语句,其他的命令语句要进行操作,都是建立在使用 cd 命令上的. 所以,学习Linux 常用命令,首先就要学好 cd 命令的使用方法技巧. 1. ...
- 【UVa-679】小球下落——二叉树的编号
在结点1处放一个小球,它会往下落.每个内结点上都会有一个开关,初始全部关闭,当每次有小球落到一个开关上时,状态都会改变.当小球到达一个结点是,如果结点上的开关关闭,则往左走,否则往右走,直到走到叶子的 ...
- python numpy argsort函数用法
numpy.argsort numpy.argsort(a, axis=-1, kind='quicksort', order=None)[source] Returns the indices th ...