弘帝企业智能建站系统交流平台

 找回密码
 立即注册
查看: 2913|回复: 1

【C#】GridView的编辑与删除记要

[复制链接]
发表于 2016-5-27 13:57:36 | 显示全部楼层 |阅读模式
前台:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
            DataKeyNames="HD_ID">
            <Columns>
                <asp:BoundField datafield="HD_FTP_User" headertext="FTP用户名" SortExpression="HD_FTP_User" />
                <asp:BoundField datafield="HD_BindDomain" headertext="绑定域名"/>
                <asp:BoundField datafield="HD_EndDate" headertext="使用终止日期" SortExpression="HD_EndDate"/>
                <asp:TemplateField>
                    <HeaderTemplate>
                        <input id="CheckAll" type="checkbox" />
                    </HeaderTemplate>
                    <ItemTemplate>
                        <asp:CheckBox ID="CheckBox1" runat="server" />
                    </ItemTemplate>
                    <ItemStyle HorizontalAlign="Center" />
                </asp:TemplateField>
                <asp:TemplateField HeaderText="操作">
                    <ItemTemplate>
                        <asp:LinkButton ID="btnEdit" runat="server" Text="编辑" CommandName="Edit" />
                        <asp:LinkButton ID="btnDel" runat="server" Text="删除" CommandName="Delete"/>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>

后台:
        protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            int id = (int)GridView1.DataKeys[e.RowIndex].Value;
            DeleteGridView(id);
            Bind();

        }

        protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
        {
            GridView1.EditIndex=e.NewEditIndex;
            Bind();
        }

        protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                LinkButton btn = (LinkButton)e.Row.FindControl("btnDel");
                btn.OnClientClick = "return confirm('您确认要删除吗?')";
            }
        }

注意:
1、CommandName的使用,否则OnRowDeleting, OnRowEditing的事件无法触发。
2、DataKeyNames="HD_ID"可以让GridView1.DataKeys[e.RowIndex].Value取值。
回复

使用道具 举报

 楼主| 发表于 2016-5-27 16:06:07 | 显示全部楼层
不使用CommandName时的编辑操作及如何获取DataKeys值。
前台:
<asp:TemplateField HeaderText="操作" HeaderStyle-Width="80">
                    <ItemTemplate>
                        <aspinkButton ID="lnkEdit" runat="server" Text="编辑"/>
                        <aspinkButton ID="lnkDel" runat="server" Text="删除" CommandName="Delete"/>
                    </ItemTemplate>
                    <ItemStyle HorizontalAlign="Center" />
                </asp:TemplateField>

后台:
protected void lnkEdit_Click(object sender, EventArgs e) {
            int i = ((GridViewRow)((LinkButton)sender).NamingContainer).RowIndex;
            int id = (int)GridView1.DataKeys[i].Value;
            Response.Write(id);
        }
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|弘帝企业智能建站系统 ( 皖ICP备07503252号 )

GMT+8, 2024-4-20 17:34 , Processed in 0.058025 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表