asp.net gridview 实现编辑

首先,了解几个有关的属性

GridView.AutoGenerateEditButton = true  会自动在gridview控件生成编辑按钮,点击“编辑”(自动生成的)时,还会出现更新按钮和取消按钮

OnRowEditing : 是一个编辑事件,点击编辑按钮会执行该函数里的内容

 

我不想使用自动生成的编辑按钮,所以没使用AutoGenerateEditButton属性。

前端:

<asp:GridView ID="GridView1" runat="server" OnRowEditing="GridView1_RowEditing" OnRowDataBound="GridView1_RowDataBound" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField HeaderText="工号" >
<ItemTemplate><%#Eval("id")%></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="姓名" >
<ItemTemplate><%#Eval("name")%></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="基本工资" >
<ItemTemplate>
<asp:Label ID="basicwage" runat="server" Text='<%#Eval("basicwage")%>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="basicwage" runat="server" CssClass="textbox" Text='<%#Eval("basicwage")%>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="福利" >
<ItemTemplate>
<asp:Label ID="welfare" runat="server" Text='<%#Eval("welfare")%>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="welfare" runat="server" CssClass="textbox" Text='<%#Eval("welfare")%>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="奖金" >
<ItemTemplate>
<asp:Label ID="bonus" runat="server" Text='<%#Eval("bonus")%>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="bonus" runat="server" CssClass="textbox" Text='<%#Eval("bonus")%>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="全职奖" >
<ItemTemplate>
<asp:Label ID="allwork" runat="server" Text='<%#Eval("allwork")%>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="allwork" runat="server" CssClass="textbox" Text='<%#Eval("allwork")%>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="罚金" >
<ItemTemplate>
<asp:Label ID="pena" runat="server" Text='<%#Eval("pena")%>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="pena" runat="server" CssClass="textbox" Text='<%#Eval("pena")%>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="缺勤罚款" >
<ItemTemplate>
<asp:Label ID="absenwork" runat="server" Text='<%#Eval("absenwork")%>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="absenwork" runat="server" CssClass="textbox" Text='<%#Eval("absenwork")%>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="税率" >
<ItemTemplate>
<asp:Label ID="tax" runat="server" Text='<%#Eval("tax")%>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="tax" runat="server" CssClass="textbox" Text='<%#Eval("tax")%>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="实际工资" >
<ItemTemplate>
<asp:Label ID="factwage" runat="server" Text='<%#Eval("factwage")%>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="factwage" runat="server" CssClass="textbox" Text='<%#Eval("factwage")%>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="操作">
<ItemTemplate>
<asp:LinkButton ID="editbtn" runat="server" CommandName="EDit" Text="编辑" ></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

 

后台:

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
this.GridView1.EditIndex = e.NewEditIndex;    //使编辑的行是当前操作的行   editIndex:编辑行的索引  newEditIndex:所编辑的行的索引
}

 

注意:在前端代码中,一定要在asp:TemplateField中加上EditItemTemplate,因为,处于编辑状态就是让你的当前行处于EditItemTemplate里的内容。

所以:我在EditItemTemplate中让数据放在textbox中;

asp:LinkButton ID="editbtn"  中的   CommandName="EDit"  ;CommandName要为EDit,点击该按钮才会进入编辑状态,改成别的名字是不会进入编辑状态的

结果:

 

转载于:https://www.cnblogs.com/shiyuzuxia/p/9009973.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值