http://www.cnevan.com/blog/showlog.asp?cat_id=41&log_id=518
这个代码我用过,效果不错。

解决方案 »

  1.   

    更新功能当 改了文本框中的值后,到后代抓数据,更新到数据库<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm10.aspx.cs" Inherits="GridviewGenColum.WebForm10" %><!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="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1">
                <Columns>
                    <asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True"
                        SortExpression="id" />
                    <asp:TemplateField HeaderText="name" SortExpression="name">
                        
                        <ItemTemplate>
                            <asp:Label ID="Label1" runat="server" Text='<%# Bind("name") %>'></asp:Label>
                            <input id="txtName" type="text" style="display:none;" />
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="password" SortExpression="password">
                      
                        <ItemTemplate>
                            <asp:Label ID="Label3" runat="server" Text='<%# Bind("password") %>'></asp:Label>
                            <input id="txtPwd" type="text" style="display:none;" />
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="email" SortExpression="email">
                     
                        <ItemTemplate>
                            <asp:Label ID="Label2" runat="server" Text='<%# Bind("email") %>'></asp:Label>
                            <input id="txtEmail" type="text"  style="display:none;"/>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:BoundField DataField="date" HeaderText="date" SortExpression="date" />
                    <asp:TemplateField>
                        <ItemTemplate>
                            <input id="btnEdit" type="button" value="编辑" onclick="edit()" />
                            <input id="btnCancel" type="button" value="取消" onclick="cancel()" />
                        </ItemTemplate>
                        <ItemStyle Width="150px" />
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>
        
        </div>
            <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:CastleTestConnectionString %>"
                SelectCommand="SELECT * FROM [Users]"></asp:SqlDataSource>
        </form>
        <script type="text/javascript">
        function edit()
        {
            var e=event.srcElement.parentElement.parentElement; 
           
            e.childNodes[1].childNodes[0].style.display="none";
            e.childNodes[1].childNodes[2].style.display="";
            e.childNodes[2].childNodes[0].style.display="none";
            e.childNodes[2].childNodes[2].style.display="";
            e.childNodes[3].childNodes[0].style.display="none";
            e.childNodes[3].childNodes[2].style.display="";
      
            e.childNodes[1].childNodes[2].value=e.childNodes[1].childNodes[0].innerText;
            e.childNodes[2].childNodes[2].value=e.childNodes[2].childNodes[0].innerText;
            e.childNodes[3].childNodes[2].value=e.childNodes[3].childNodes[0].innerText;
        }
        
        function cancel()
        {
            var e=event.srcElement.parentElement.parentElement; 
           
            e.childNodes[1].childNodes[0].style.display="";
            e.childNodes[1].childNodes[2].style.display="none";
            e.childNodes[2].childNodes[0].style.display="";
            e.childNodes[2].childNodes[2].style.display="none";
            e.childNodes[3].childNodes[0].style.display="";
            e.childNodes[3].childNodes[2].style.display="none";
        }
        
        </script>
    </body>
    </html>
      

  2.   

    参考:http://blog.csdn.net/insus/archive/2008/03/30/2229898.aspx