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();
}

最新文章

  1. Publishing failed with multiple errors 异常
  2. leetcode Super Pow
  3. 【linux】 解决linux下vsftp 500 OOPS: cannot change directory:/home/ftp/ 办法
  4. SQLExecption:Operation not allowed after ResultSet closed解决办法
  5. QQ登录类
  6. 倒计时js代码
  7. 通过JDBC进行简单的增删改查
  8. DIV+CSS命名规范-转载1
  9. MYSQL数据库重点:流程控制语句
  10. Linux五种IO模型
  11. js的面向对象的程序设计之理解继承
  12. InnoDB MyISAM区别及优化(摘录)
  13. 关于JPA多数据源的部署persistence.xml文件配置以及对应实现类注入
  14. 环境配置与JBoss安装-EJB3.0入门经典学习笔记(1)
  15. python 在mongo 中建立索引
  16. C#_FindWindow
  17. JavaJDK8新特性相关知识整理
  18. Vert.x简介
  19. 微信小程序开发资料汇总
  20. C语言扫盲篇

热门文章

  1. SpringCloud微服务实战——第三章服务治理
  2. -3dB的理解
  3. POJ3264(RMQ-ST算法)
  4. HDU1560(迭代加深搜索)
  5. spring中JavaConfig相关的注解
  6. AngularJS:模块
  7. 删除pool error的解决方法
  8. Oracle 静默安装的db_install.rsp 文件
  9. 发任务找不到test-unit报错
  10. 调试json