http://www.cnblogs.com/insus/archive/2012/09/22/2697862.html

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
/// Summary description for CObj
/// </summary>
namespace Insus.NET
{
public class CObj
{
private int _Nbr;
private int _Val;

public int Nbr
{
get { return _Nbr; }
set { _Nbr = value; }
}

public int Val
{
get { return _Val; }
set { _Val = value; }
}
public CObj()
{
//
// TODO: Add constructor logic here
//
}
}
}

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" Width="230px" OnRowCreated ="GridView1_RowCreated">
<Columns>
<asp:TemplateField>
<HeaderTemplate>
key
</HeaderTemplate>
<ItemTemplate>
<%# Eval("Nbr") %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>
Value
</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="LabelVal" runat="server" Text='<%# Eval("Val") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>
operator
</HeaderTemplate>
<ItemTemplate>
<asp:Button ID="ButtonAdd" runat="server" Text="+" />&nbsp;&nbsp;
<asp:Button ID="ButtonSubtract" runat="server" Text="-" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

引用  using Insus.NET;

xxx.aspx.cs代码:

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Data_Binding();
}
}

private void Data_Binding()
{
List<CObj> MyObj = new List<CObj>();

CObj o = new CObj();
o.Nbr = 1;
o.Val = 100;
MyObj.Add(o);

this.GridView1.DataSource = MyObj;
this.GridView1.DataBind();
}

protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType != DataControlRowType.DataRow) return;

if (e.Row.FindControl("ButtonAdd") != null)
{
var ButtonAdd = e.Row.FindControl("ButtonAdd") as Button;
ButtonAdd.Click += ButtonAdd_Click;
}

if (e.Row.FindControl("ButtonSubtract") != null)
{
var ButtonSubtract = e.Row.FindControl("ButtonSubtract") as Button;
ButtonSubtract.Click += ButtonSubtract_Click;
}
}

private void ButtonAdd_Click(object sender, EventArgs e)
{
var button = sender as Button;
GridViewRow gvr = (GridViewRow)button.Parent.Parent;
var Label = (Label)this.GridView1.Rows[gvr.RowIndex].FindControl("LabelVal");
int v = Convert.ToInt32(Label.Text);
Label.Text = (v + 1).ToString();
}

private void ButtonSubtract_Click(object sender, EventArgs e)
{
var button = sender as Button;
GridViewRow gvr = (GridViewRow)button.Parent.Parent;
var Label = (Label)this.GridView1.Rows[gvr.RowIndex].FindControl("LabelVal");
int v = Convert.ToInt32(Label.Text);
Label.Text = (v - 1).ToString();
}

GridView里的按钮事件的更多相关文章

  1. asp.net中父子页面通过gridview中的按钮事件进行回传值的问题

    这两天写BS程序,遇到父子页面传值的问题,以前没写过web系统,用了几天时间才将问题解决,总结下记录下来: 问题描述: 父页面A中有一个gridview,每行6个列,有5列中均有一个按钮,单击按钮,会 ...

  2. GridView行中按钮的使用

    转载自:http://blog.csdn.net/hongdi/article/details/6455947 GridView行中按钮的使用 在web项目的过程中,特别是开发ASP.NET应用程序, ...

  3. 关于实现自定义Dialog和实现Dialog里view的事件监听的两种方法

    一.自定义dialog. 二.实现dialog里view的事件监听 1.自定义dialog比较简单.在实例化new的时候,加入样式,布局就行了.或者重写dialog. 2.实现dialog里view的 ...

  4. iOS代码实现:创建按钮,绑定按钮事件,读取控件值

    // // main.m // Hello // // Created by lishujun on 14-8-28. // Copyright (c) 2014年 lishujun. All rig ...

  5. DEVEXPRESS GRIDVIEW 代码添加按钮(转)

    https://www.cnblogs.com/qq-xiao/p/6122573.html 1.1 创建一个RepositoryItemButtonEdit方法 1 private Reposito ...

  6. H5微信页面开发 IOS系统 input输入框失去焦点,软键盘关闭后,被撑起的页面无法回退到原来正常的位置,导致弹框里的按钮响应区域错位

    H5微信页面开发,软键盘弹起后,若原输入框被遮挡,页面整体将会上移,然而当输入框失焦,软键盘收起后,页面未恢复,导致弹框里的按钮响应区域错位. 解决方案:给输入框(或select选择框)添加失去焦点的 ...

  7. SQLSERVER2012里的扩展事件初尝试(下)

    SQLSERVER2012里的扩展事件初尝试(下) SQLSERVER2012里的扩展事件初尝试(上) 我们继续文章扩展事件在Denali CTP3里的新UI(二)里的这个实验 脚本文件下载:http ...

  8. SQLSERVER2012里的扩展事件初尝试(上)

    SQLSERVER2012里的扩展事件初尝试(上) SQLSERVER2012里的扩展事件初尝试(下) 周未看了这两篇文章: 扩展事件在Denali CTP3里的新UI(一) 扩展事件在Denali ...

  9. wxpython 编程触发菜单或按钮事件

    最近逐步熟悉wxpython,编写了几个小小功能的GUI程序,GUI中免不了会有在代码中触发控件事件的业务需求.在其他Gui界面的语言中有postevent.triggerevent 调用事件名称的函 ...

随机推荐

  1. 洛谷【P2629】好消息,坏消息

    浅谈队列:https://www.cnblogs.com/AKMer/p/10314965.html 题目传送门:https://www.luogu.org/problemnew/show/P2629 ...

  2. Spark Shuffle大揭秘

    什么是Shuffle: Shuffle中文翻译为“洗牌”,需要Shuffle的关键原因是某种具有共同特征的数据需要最终汇聚到一个计算节点上进行计算. Shuffle面临的问题: 1. 数据量非常大: ...

  3. Order By操作

    本文转载自:http://www.cnblogs.com/vingi/articles/2450482.html 适用场景:对查询出的语句进行排序,比如按时间排序等等. 说明:按指定表达式对集合排序: ...

  4. EMIPLIB简介

    EMIPLIB(http://research.edm.uhasselt.be/emiplib)的全称是'EDM Media over IP libray' .EDM是Hasselt Universi ...

  5. python startswith与endswith

    如果你要用python匹配字符串的开头或末尾是否包含一个字符串,就可以用startswith,和endswith比如:content = 'ilovepython'如果字符串content以ilove ...

  6. Android 媒体编解码器(转)

    媒体编解码器 MediaCodec类是用来为低级别的媒体编码和解码的媒体编解码器提供访问.您可以实例化一个MediaCodec类通过调用createEncoderByType()方法来进行对媒体文件进 ...

  7. DHCP工作工程

    1.客户端请求IP 客户端发一个DHCP DISCOVEY(包含主机名.mac地址)广播包 2.服务端响应请求 DHCP服务器收到请求后,查看自己的地址池是否有合法的地址.如果有,广播一个DHCP o ...

  8. 在Linux下adb连接不上android手机的终极解决方案

    转自: http://blog.csdn.net/liuqz2009/article/details/7942569 1.做android开发的过程,碰到了Linux下adb识别不了android设备 ...

  9. SharedPreferences 用法

    private void getUserInfoFromPref(){ /* * 保存到文件的方法 * * Constant.user = (User)Constant.readObjectFromF ...

  10. 每天一道算法题(32)——输出数组中第k小的数

    1.题目 快速输出第K小的数 2.思路 使用快速排序的思想,递归求解.若键值位置i与k相等,返回.若大于k,则在[start,i-1]中寻找第k大的数.若小于k.则在[i+1,end]中寻找第k+st ...