gridview /TemplateField /RowCommand/ 当前行index /Insert/update/delete
HTML:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="GridView.aspx.cs" Inherits="RGY_WebApp.GridView" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView11" runat="server" AllowPaging="true" AutoGenerateColumns="False"
DataKeyNames="Id,Type"
OnRowCancelingEdit="grdContact_RowCancelingEdit" DataSourceID="ObjectDataSource1"
OnRowDataBound="grdContact_RowDataBound" OnRowEditing="grdContact_RowEditing"
OnRowUpdating="grdContact_RowUpdating" OnRowCommand="grdContact_RowCommand"
ShowFooter="True" OnRowDeleting="grdContact_RowDeleting" BackColor="White"
BorderColor="#3366CC" BorderStyle="None" BorderWidth="1px"
CellPadding="4" PageSize="5"
EnableModelValidation="True" onrowcreated="GridView11_RowCreated" >
<FooterStyle BackColor="#FFFFCC" ForeColor="#330099" />
<RowStyle BackColor="White" ForeColor="#330099" />
<SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="#663399" />
<PagerStyle BackColor="#FFFFCC" ForeColor="#330099" HorizontalAlign="Center" />
<HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="#FFFFCC" />
<Columns>
<asp:TemplateField HeaderText="ID" HeaderStyle-HorizontalAlign="Left">
<EditItemTemplate>
<asp:Label ID="id" runat="server" Text='<%# Bind("Id") %>'></asp:Label>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblId" runat="server" Text='<%# Bind("Id") %>'></asp:Label>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Left"></HeaderStyle>
</asp:TemplateField>
<asp:TemplateField HeaderText="Name" HeaderStyle-HorizontalAlign="Left">
<EditItemTemplate>
<asp:TextBox ID="name" runat="server" Text='<%# Bind("Name") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtNewName" Text="name" runat="server" ></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="lblName" runat="server" Text='<%# Bind("Name") %>'></asp:Label>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Left"></HeaderStyle>
</asp:TemplateField>
<asp:TemplateField HeaderText="Sex" HeaderStyle-HorizontalAlign="Left">
<EditItemTemplate>
<asp:DropDownList ID="sex" runat="server">
<asp:ListItem Value="男" Text="Male"></asp:ListItem>
<asp:ListItem Value="女" Text="Female"></asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblSex" runat="server" Text='<%# Eval("Sex") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:DropDownList ID="ddlNewSex" runat="server" >
<asp:ListItem Text="男" Value="Male" Selected="True"></asp:ListItem>
<asp:ListItem Text="女" Value="Female"></asp:ListItem> </asp:DropDownList>
</FooterTemplate>
<HeaderStyle HorizontalAlign="Left"></HeaderStyle>
</asp:TemplateField>
<asp:TemplateField HeaderText="Type" HeaderStyle-HorizontalAlign="Left">
<EditItemTemplate>
<asp:DropDownList ID="type" runat="server" DataSourceID="ObjectDataSource2" DataTextField="TypeName" DataValueField="Id"> </asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblType" runat="server" Text='<%# Eval("Type") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:DropDownList ID="cmbNewType" runat="server" DataSourceID="ObjectDataSource2" DataTextField="TypeName" DataValueField="Id"> </asp:DropDownList>
</FooterTemplate>
<HeaderStyle HorizontalAlign="Left"></HeaderStyle>
</asp:TemplateField>
<asp:TemplateField HeaderText="Ative">
<EditItemTemplate>
<asp:CheckBox ID="isActive" runat="server" />
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="lblActive" runat="server" Text='<%# Eval("IsActive") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:CheckBox ID="chkNewActive" runat="server" />
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Edit" ShowHeader="False" HeaderStyle-HorizontalAlign="Left">
<EditItemTemplate>
<asp:LinkButton ID="lnkEdit" runat="server" CausesValidation="True" CommandName="Update" Text="Update"></asp:LinkButton>
<asp:LinkButton ID="lnkCancel" runat="server" CausesValidation="False" CommandName="Cancel" Text="Cancel"></asp:LinkButton>
</EditItemTemplate>
<FooterTemplate>
<asp:LinkButton ID="lnkAdd" runat="server" CausesValidation="False" CommandName="Insert" Text="Insert"></asp:LinkButton>
</FooterTemplate>
<ItemTemplate>
<asp:LinkButton ID="lnkEdit" runat="server" CausesValidation="False" CommandName="Edit" Text="Edit"></asp:LinkButton>
<asp:LinkButton ID="LnkDelete" runat="server" CausesValidation="False" CommandName="Delete" Text="Delete"></asp:LinkButton>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Left"></HeaderStyle>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="getAll"
TypeName="UserManager.DAL.ContactOperator"
UpdateMethod="UpdateContactInfo" DeleteMethod="deleteContactInfo">
</asp:ObjectDataSource>
<asp:ObjectDataSource ID="ObjectDataSource2" runat="server"
SelectMethod="getAllContactType" TypeName="UserManager.DAL.ContactOperator">
</asp:ObjectDataSource>
</form>
</body>
</html>
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace RGY_WebApp
{
public partial class GridView : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void grdContact_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
}
protected void grdContact_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName.Equals("Insert"))
{
TextBox txtNewName = (TextBox)GridView11.FooterRow.FindControl("txtNewName");
CheckBox chkNewActive = (CheckBox)GridView11.FooterRow.FindControl("chkNewActive");
DropDownList cmbNewType = (DropDownList)GridView11.FooterRow.FindControl("cmbNewType");
DropDownList ddlNewSex = (DropDownList)GridView11.FooterRow.FindControl("ddlNewSex");
ObjectDataSource1.InsertParameters.Add("name", txtNewName.Text);
ObjectDataSource1.InsertParameters.Add("sex", ddlNewSex.SelectedValue);
ObjectDataSource1.InsertParameters.Add("type", cmbNewType.SelectedValue);
ObjectDataSource1.InsertParameters.Add("isActive", System.Data.DbType.Boolean,chkNewActive.Checked?"true":"false");
ObjectDataSource1.Insert();
}
if (e.CommandName.Equals("Delete"))
{
int index = int.Parse(e.CommandArgument.ToString());
GridViewRow row = GridView11.Rows[index];
Label id = (Label)row.FindControl("lblId");
ObjectDataSource1.DeleteParameters.Add("id",id.Text);
ObjectDataSource1.Delete();
}
if (e.CommandName.Equals("Update"))
{
int index = int.Parse(e.CommandArgument.ToString());
GridViewRow row = GridView11.Rows[index];
TextBox txtNewName = (TextBox)row.FindControl("name");
Label id = (Label)row.FindControl("id");
CheckBox chkNewActive = (CheckBox)row.FindControl("isActive");
DropDownList cmbNewType = (DropDownList)row.FindControl("type");
DropDownList ddlNewSex = (DropDownList)row.FindControl("sex");
ObjectDataSource1.UpdateParameters.Add("id", id.Text);
ObjectDataSource1.UpdateParameters.Add("name", txtNewName.Text);
ObjectDataSource1.UpdateParameters.Add("sex", ddlNewSex.SelectedValue);
ObjectDataSource1.UpdateParameters.Add("type", cmbNewType.SelectedValue);
ObjectDataSource1.UpdateParameters.Add("isActive", System.Data.DbType.Boolean, "false");
}
}
protected void grdContact_RowDataBound(object sender, GridViewRowEventArgs e)
{
}
protected void grdContact_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
}
protected void grdContact_RowEditing(object sender, GridViewEditEventArgs e)
{
}
protected void grdContact_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
ObjectDataSource1.Update();
}
protected void GridView11_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
LinkButton LinkButton1 = (LinkButton)e.Row.FindControl("lnkEdit");
// Set the LinkButton's CommandArgument property with the row's index.
LinkButton1.CommandArgument = e.Row.RowIndex.ToString();
LinkButton LinkButton2 = (LinkButton)e.Row.FindControl("LnkDelete");
// Set the LinkButton's CommandArgument property with the row's index.
if (LinkButton2!=null)
LinkButton2.CommandArgument = e.Row.RowIndex.ToString();
}
}
}
}
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace RGY_WebApp
{
public partial class GridView : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void grdContact_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
}
protected void grdContact_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName.Equals("Insert"))
{
TextBox txtNewName = (TextBox)GridView11.FooterRow.FindControl("txtNewName");
CheckBox chkNewActive = (CheckBox)GridView11.FooterRow.FindControl("chkNewActive");
DropDownList cmbNewType = (DropDownList)GridView11.FooterRow.FindControl("cmbNewType");
DropDownList ddlNewSex = (DropDownList)GridView11.FooterRow.FindControl("ddlNewSex");
ObjectDataSource1.InsertParameters.Add("name", txtNewName.Text);
ObjectDataSource1.InsertParameters.Add("sex", ddlNewSex.SelectedValue);
ObjectDataSource1.InsertParameters.Add("type", cmbNewType.SelectedValue);
ObjectDataSource1.InsertParameters.Add("isActive", System.Data.DbType.Boolean,chkNewActive.Checked?"true":"false");
ObjectDataSource1.Insert();
}
if (e.CommandName.Equals("Delete"))
{
int index = int.Parse(e.CommandArgument.ToString());
GridViewRow row = GridView11.Rows[index];
Label id = (Label)row.FindControl("lblId");
ObjectDataSource1.DeleteParameters.Add("id",id.Text);
ObjectDataSource1.Delete();
}
if (e.CommandName.Equals("Update"))
{
int index = int.Parse(e.CommandArgument.ToString());
GridViewRow row = GridView11.Rows[index];
TextBox txtNewName = (TextBox)row.FindControl("name");
Label id = (Label)row.FindControl("id");
CheckBox chkNewActive = (CheckBox)row.FindControl("isActive");
DropDownList cmbNewType = (DropDownList)row.FindControl("type");
DropDownList ddlNewSex = (DropDownList)row.FindControl("sex");
ObjectDataSource1.UpdateParameters.Add("id", id.Text);
ObjectDataSource1.UpdateParameters.Add("name", txtNewName.Text);
ObjectDataSource1.UpdateParameters.Add("sex", ddlNewSex.SelectedValue);
ObjectDataSource1.UpdateParameters.Add("type", cmbNewType.SelectedValue);
ObjectDataSource1.UpdateParameters.Add("isActive", System.Data.DbType.Boolean, "false");
}
}
protected void grdContact_RowDataBound(object sender, GridViewRowEventArgs e)
{
}
protected void grdContact_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
}
protected void grdContact_RowEditing(object sender, GridViewEditEventArgs e)
{
}
protected void grdContact_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
ObjectDataSource1.Update();
}
protected void GridView11_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
LinkButton LinkButton1 = (LinkButton)e.Row.FindControl("lnkEdit");
// Set the LinkButton's CommandArgument property with the row's index.
LinkButton1.CommandArgument = e.Row.RowIndex.ToString();
LinkButton LinkButton2 = (LinkButton)e.Row.FindControl("LnkDelete");
// Set the LinkButton's CommandArgument property with the row's index.
if (LinkButton2!=null)
LinkButton2.CommandArgument = e.Row.RowIndex.ToString();
}
}
}
}