Gridview裡面的按鈕事件

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

https://www.cnblogs.com/insus/archive/2011/06/30/2094151.html

CObj.cs代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

///


/// Summary description for CObj
///

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
//
}
}
}

GridView代码:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" Width="230px" OnRowCreated ="GridView1_RowCreated">

asp:TemplateField

key


<%# Eval("Nbr") %>

</asp:TemplateField>
asp:TemplateField

Value


<asp:Label ID="LabelVal" runat="server" Text='<%# Eval("Val") %>'></asp:Label>

</asp:TemplateField>
asp:TemplateField

operator


<asp:Button ID="ButtonAdd" runat="server" Text="+" />  
<asp:Button ID="ButtonSubtract" runat="server" Text="-" />

</asp:TemplateField>

</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 MyObj = new List();

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

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" DataKeyNames="MediaTypeId"
OnRowCreated="GridView1_RowCreated">


<asp:TemplateField HeaderText="Select">

<asp:Button ID="Button1" runat="server" Text="选择" />

</asp:TemplateField>

</asp:GridView>

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

if (e.Row.FindControl ("Button1") != null)
{
Button CtlButton = (Button)e.Row.FindControl ("Button1");
CtlButton.Click +=new EventHandler(CtlButton_Click);
}
}

private void CtlButton_Click(object sender, EventArgs e)
{
Button button = (Button)sender;
GridViewRow gvr = (GridViewRow)button.Parent.Parent;
string pk = GridView1.DataKeys[gvr.RowIndex].Value.ToString();

//do something

//InsusJsUtility objJs = new InsusJsUtility(); //http://www.cnblogs.com/insus/articles/1341703.html
//objJs.JsAlert(pk);
}

posted @ 2020-07-17 11:34  乌卡拉卡  阅读(146)  评论(0)    收藏  举报