COMPUTER_LZY

要输就输给追求,要嫁就嫁给幸福

导航

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

posted on 2012-03-09 09:52  CANYOUNG  阅读(457)  评论(0编辑  收藏  举报