关于GridView修改,更新,删除操作

本文详细介绍了如何使用ASP.NET中的GridView控件进行数据展示及增删改查等操作,并提供了具体的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先从后台读取数据,然后将数据绑定到GridView当中,

注意的是需要把列id赋值给GridView的DatakeyNames。

private void Load()
    {
        string sql = "select * from dnt_IndexImg";
        DataSet ds=DataSqlAdaper.ExecuteDataset(DataSqlAdaper.connString,CommandType.Text,sql);
        GridView1.DataSource = ds;
        GridView1.DataKeyNames = new string[] { "id" };
        GridView1.DataBind();
    }

然后从属性中添加事件

修改事件

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
    {
        GridView1.EditIndex = e.NewEditIndex;
        Load();
    }
取消修改事件

 protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    {
        GridView1.EditIndex = -1;
        Load();
    }

更新事件

 protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        TextBox tbx = (TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox1");
        TextBox tbx2 = (TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox2");
        TextBox tbx3 = (TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox3");
        string id = GridView1.DataKeys[e.RowIndex].Value.ToString();
        string sql = "";
        int res= DataSqlAdaper.ExecuteNonQuery(DataSqlAdaper.connString, CommandType.Text, sql);
        if (res != 0)
           GridView1.EditIndex = -1;
           Load();

        
        

    }

删除事件

protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        string id = GridView1.DataKeys[e.RowIndex].Value.ToString();
        string sql ="";
        int res= DataSqlAdaper.ExecuteNonQuery(DataSqlAdaper.wpConnStr,CommandType.Text,sql);
        if(res!=0)
            Response.Write("<script>alert('成功');</script>");
        show();

    }



当上述事件都添加成功的话前台会显示到GridView当中

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="id" Height="58px" Width="803px" CellPadding="4" ForeColor="#333333" GridLines="None" OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating" OnRowCancelingEdit="GridView1_RowCancelingEdit" OnRowDeleting="GridView1_RowDeleting">



这是前台代码

 <Columns>
               
                <asp:BoundField DataField="id" HeaderText="id" InsertVisible="False"
                    SortExpression="id" ReadOnly="True" />
                <asp:TemplateField HeaderText="img1" SortExpression="img1">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("img1") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label1" runat="server" Text='<%# Eval("img1") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="img2" SortExpression="img2">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox2" runat="server" Text='<%# Eval("img2") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <%# Eval("img2") %>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="link" SortExpression="link">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox3" runat="server" Text='<%# Eval("link") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label3" runat="server" Text='<%# Eval("link") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:BoundField DataField="position" HeaderText="position" SortExpression="position" ReadOnly="True" />
                <asp:TemplateField ShowHeader="False" HeaderText="操作">
                        <EditItemTemplate>
                            <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True" CommandName="Update"
                                Text="更新"></asp:LinkButton>
                            <asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Cancel"
                                Text="取消"></asp:LinkButton>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Edit"
                                Text="编辑"></asp:LinkButton>
                                  <asp:LinkButton ID="LinkButton3" runat="server" CausesValidation="False" CommandName="delete"
                                Text="删除"></asp:LinkButton>
                        </ItemTemplate>
                    </asp:TemplateField>


RowDeleted与RowDeleting区别

RowDeleting单击某一行的“删除”按钮后,在 GridView 控件删除该行之前,将引发RowDeleting事件,此时还可以取消删除操作,如有必要,您还可以在将值传递给数据源之前操作 Keys 和 Values 集合。
RowDeleted 
单击某一行的“删除”按钮后,在 GridView 控件删除该行之后,将引发RowDeleted事件。
此时您可以确定受影响的行数以及可能已经发生的任何异常区别

的区别?


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值