本文实例讲述了asp.net中GridView编辑,更新,合计用法。分享给大家供大家参考,具体如下:
前台代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
<asp:GridView ID= "tabgv" runat= "server" DataKeyNames= "ysId" ShowFooter= "True" OnRowDataBound= "GridView1_RowDataBound" OnRowCreated= "GridView1_RowCreated" AutoGenerateColumns= "False" Width= "99%" CssClass= "gridview" EnableModelValidation= "True" OnRowCancelingEdit= "tabgv_RowCancelingEdit" OnRowEditing= "tabgv_RowEditing" OnRowUpdating= "tabgv_RowUpdating" > <RowStyle BorderColor= "Black" BorderStyle= "None" /> <Columns> <asp:BoundField DataField= "gsHkrno" HeaderText= "项目编号" ReadOnly= "True" > <ItemStyle Width= "5%" HorizontalAlign= "Center" /> <FooterStyle BorderWidth= "0px" /> </asp:BoundField> <asp:TemplateField HeaderText= "项目名称" > <ItemTemplate> <asp:HyperLink ID= "Hyp_gsName" runat= "server" ForeColor= "Blue" Text= '<%# Bind("gsName") %>' ></asp:HyperLink> </ItemTemplate> <ItemStyle Width= "25%" HorizontalAlign= "left" /> <FooterTemplate> <asp:Label ID= "Label4" runat= "server" Font-Bold= "True" Text= "合 计:" Width= "61px" ></asp:Label> </FooterTemplate> <FooterStyle BorderColor= "Black" BorderWidth= "0px" HorizontalAlign= "Right" /> </asp:TemplateField> <asp:TemplateField HeaderText= "概算金额" > <ItemTemplate> <asp:Label ID= "labgsMoney" runat= "server" Text= '<%#Bind("gsMoney", "{0:N2}") %>' ></asp:Label> </ItemTemplate> <ItemStyle Width= "8%" HorizontalAlign= "right" /> <FooterTemplate> <asp:Label ID= "labtotalgsMoney" runat= "server" ForeColor= "Red" ></asp:Label> </FooterTemplate> <FooterStyle BorderColor= "Black" HorizontalAlign= "Right" /> </asp:TemplateField> <asp:TemplateField HeaderText= "开工至上年底\n累计完成概算" > <ItemTemplate> <asp:Label ID= "labkgzsndwcGsMoney" runat= "server" Text= '<%# Bind("footMoney", "{0:N2}") %>' ></asp:Label> <asp:HiddenField ID= "hdnysYear" runat= "server" Value= '<%# Eval("ysYear") %> ' /> <asp:HiddenField ID= "hdngsId" runat= "server" Value= '<%# Eval("gsId") %> ' /> <asp:HiddenField ID= "hdngsHkrno" runat= "server" Value= '<%# Eval("gsHkrno") %> ' /> <asp:HiddenField ID= "hdnChildFlag" runat= "server" Value= '<%# Eval("childFlag") %> ' /> </ItemTemplate> <ItemStyle Width= "8%" HorizontalAlign= "right" /> <FooterTemplate> <asp:Label ID= "labtotalfootMoney" runat= "server" ForeColor= "Red" ></asp:Label> </FooterTemplate> <FooterStyle BorderColor= "Black" HorizontalAlign= "Right" /> </asp:TemplateField> <asp:TemplateField HeaderText= "投资计划金额" > <ItemTemplate> <asp:Label ID= "labtzqysMoney" runat= "server" Text= '<%# Bind("tzqysMoney", "{0:N2}") %>' ></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID= "txttzqysMoney" runat= "server" Text= '<%# Eval("tzqysMoney") %> ' Style= "text-align: right" Width= "100px" onKeyPress= "if (event.keyCode!=46 && event.keyCode!=45 && (event.keyCode<48 || event.keyCode>57)) event.returnValue=false" ></asp:TextBox> </EditItemTemplate> <ItemStyle Width= "8%" HorizontalAlign= "right" /> <FooterTemplate> <asp:Label ID= "labtotaltzqysMoney" runat= "server" ForeColor= "Red" ></asp:Label> </FooterTemplate> <FooterStyle BorderColor= "Black" HorizontalAlign= "Right" /> </asp:TemplateField> <asp:TemplateField> <ItemTemplate> <asp:Label ID= "labtzhysMoney" runat= "server" Text= '<%# Bind("tzhysMoney", "{0:N2}") %>' ></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID= "txttzhysMoney" runat= "server" Text= '<%# Eval("tzhysMoney") %> ' Style= "text-align: right" Width= "100px" onKeyPress= "if (event.keyCode!=46 && event.keyCode!=45 && (event.keyCode<48 || event.keyCode>57)) event.returnValue=false" ></asp:TextBox> </EditItemTemplate> <ItemStyle Width= "8%" HorizontalAlign= "right" /> <FooterTemplate> <asp:Label ID= "labtotaltzhysMoney" runat= "server" ForeColor= "Red" ></asp:Label> </FooterTemplate> <FooterStyle BorderColor= "Black" HorizontalAlign= "Right" /> </asp:TemplateField> <asp:TemplateField HeaderText= "备注" > <ItemTemplate> <asp:Label ID= "labtremark" runat= "server" Text= '<%# Eval("remark") %> ' ></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID= "txtremark" runat= "server" Text= '<%# Eval("remark") %> ' Width= "100px" ></asp:TextBox> </EditItemTemplate> <ItemStyle Width= "10%" HorizontalAlign= "Center" /> </asp:TemplateField> <asp:TemplateField ShowHeader= "False" > <EditItemTemplate> <asp:LinkButton ID= "LkBtnUpdate" runat= "server" CausesValidation= "True" CommandName= "Update" Text= "更新" ></asp:LinkButton> <asp:LinkButton ID= "LkBtnCtrl" runat= "server" CausesValidation= "False" CommandName= "Cancel" Text= "取消" ></asp:LinkButton> </EditItemTemplate> <ItemTemplate> <asp:LinkButton ID= "LinkButton2" runat= "server" CausesValidation= "False" CommandName= '<%#Eval("childFlag").ToString()== "0" ? "":"Edit"%>' Text= '<%#Eval("childFlag").ToString()== "0" ? "锁定":"编辑"%>' ></asp:LinkButton> </ItemTemplate> <ItemStyle Width= "8%" HorizontalAlign= "Center" /> </asp:TemplateField> </Columns> </asp:GridView> |
注意:
1、通过设置 ReadOnly="True" 表示此列不可以编辑;
2、通过Text='<%# Bind("tzhysMoney", "{0:N2}") %>'进行金额格式化;
3、重点的编辑\显示\合计
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<asp:TemplateField> <ItemTemplate> <asp:Label ID= "labtzhysMoney" runat= "server" Text= '<%# Bind("tzhysMoney", "{0:N2}") %>' ></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:TextBox ID= "txttzhysMoney" runat= "server" Text= '<%# Eval("tzhysMoney") %> ' Style= "text-align: right" Width= "100px" ></asp:TextBox> </EditItemTemplate> <ItemStyle Width= "8%" HorizontalAlign= "right" /> <FooterTemplate> <asp:Label ID= "labtotaltzhysMoney" runat= "server" ForeColor= "Red" ></asp:Label> </FooterTemplate> <FooterStyle BorderColor= "Black" HorizontalAlign= "Right" /> </asp:TemplateField> |
后台代码:
行绑定时的操作:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
protected void GridView1_RowDataBound( object sender, GridViewRowEventArgs e) { GridViewRow gr = e.Row; if (gr.RowType == DataControlRowType.DataRow) { HiddenField hdnysYear = (HiddenField)e.Row.FindControl( "hdnysYear" ); HiddenField hdngsHkrno = (HiddenField)e.Row.FindControl( "hdngsHkrno" ); HiddenField hdnChildFlag = (HiddenField)e.Row.FindControl( "hdnChildFlag" ); HyperLink hy = (HyperLink)e.Row.FindControl( "Hyp_gsName" ); if (hdnChildFlag.Value!= "1" ) { //设置连接地址\参数 hy.NavigateUrl = "ys_edit_right.aspx?gsHkrno=" + hdngsHkrno.Value + "&sysObjNo=" + sysObjNo + "&ysYear=" + hdnysYear.Value; hy.Font.Underline = true ; hy.ForeColor = System.Drawing.Color.Blue; hy.Target = "mainFrame" ; } else { hy.ForeColor = System.Drawing.Color.Black; } //计算合计 Label labgsMoney = (Label)(e.Row.FindControl( "labgsMoney" )); if (labgsMoney != null || labgsMoney.Text != "" ) { gsMoneytotal += Convert.ToDecimal(labgsMoney.Text); } Label labkgzsndwcGsMoney = (Label)(e.Row.FindControl( "labkgzsndwcGsMoney" )); if (labkgzsndwcGsMoney != null || labkgzsndwcGsMoney.Text != "" ) { footMoneytotal += Convert.ToDecimal(labkgzsndwcGsMoney.Text); } //编辑状态时,不然点击编辑时会出错,找不到控件 if ((e.Row.RowState & DataControlRowState.Edit) == DataControlRowState.Edit) { TextBox txttzqysMoney = (TextBox)(e.Row.FindControl( "txttzqysMoney" )); if (txttzqysMoney != null || txttzqysMoney.Text != "" ) { tzqysMoneytotal += Convert.ToDecimal(txttzqysMoney.Text); } TextBox txttzhysMoney = (TextBox)(e.Row.FindControl( "txttzhysMoney" )); if (txttzhysMoney != null || txttzhysMoney.Text != "" ) { tzhysMoneytotal += Convert.ToDecimal(txttzhysMoney.Text); } } else //非编辑状态时 { Label labtzqysMoney = (Label)(e.Row.FindControl( "labtzqysMoney" )); if (labtzqysMoney != null || labtzqysMoney.Text != "" ) { tzqysMoneytotal += Convert.ToDecimal(labtzqysMoney.Text); } Label labtzhysMoney = (Label)(e.Row.FindControl( "labtzhysMoney" )); if (labtzhysMoney != null || labtzhysMoney.Text != "" ) { tzhysMoneytotal += Convert.ToDecimal(labtzhysMoney.Text); } } } } //取消编辑 protected void tabgv_RowCancelingEdit( object sender, GridViewCancelEditEventArgs e) { tabgv.EditIndex = -1; string strysYear = (Convert.ToInt32(ysYear) - 1).ToString(); GvDataBind(gsHkrno, "0002" , ysYear, "1900-01-01 00:00:00" , strysYear + "-12-25 00:00:00" ); } //编辑 protected void tabgv_RowEditing( object sender, GridViewEditEventArgs e) { tabgv.EditIndex = e.NewEditIndex; string strysYear = (Convert.ToInt32(ysYear) - 1).ToString(); GvDataBind(gsHkrno, "0002" , ysYear, "1900-01-01 00:00:00" , strysYear + "-12-25 00:00:00" ); } //更新 protected void tabgv_RowUpdating( object sender, GridViewUpdateEventArgs e) { string sqlstr = "update ys_ysitem_list set tzqysMoney=@tzqysMoney,tzhysMoney=@tzhysMoney,remark=@remark where ysId=@ysId" ; SqlParameter[] para ={ new SqlParameter( "@tzqysMoney" ,SqlDbType.VarChar), new SqlParameter( "@tzhysMoney" ,SqlDbType.VarChar), new SqlParameter( "@remark" ,SqlDbType.VarChar), new SqlParameter( "@ysId" ,SqlDbType.VarChar) }; para[0].Value = ((TextBox)(tabgv.Rows[e.RowIndex].FindControl( "txttzqysMoney" ))).Text.ToString().Trim(); para[1].Value = ((TextBox)(tabgv.Rows[e.RowIndex].FindControl( "txttzhysMoney" ))).Text.ToString().Trim(); para[2].Value = ((TextBox)(tabgv.Rows[e.RowIndex].FindControl( "txtremark" ))).Text.ToString().Trim(); para[3].Value = tabgv.DataKeys[e.RowIndex].Value.ToString(); pms.SqlHelper.ExecuteNonQuery(CommandType.Text, sqlstr, para); tabgv.EditIndex = -1; string strysYear = (Convert.ToInt32(ysYear) - 1).ToString(); GvDataBind(gsHkrno, "0002" , ysYear, "1900-01-01 00:00:00" , strysYear + "-12-25 00:00:00" ); } |
希望本文所述对大家asp.net程序设计有所帮助。