本文实例讲述了asp.net中GridView编辑,更新,合计用法。分享给大家供大家参考,具体如下:
前台代码:
<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、重点的编辑\\显示\\合计
<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>
后台代码:
行绑定时的操作:
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相关内容感兴趣的读者可查看本站专题:《asp.net操作json技巧总结》、《asp.net字符串操作技巧汇总》、《asp.net操作XML技巧总结》、《asp.net文件操作技巧汇总》、《asp.net ajax技巧总结专题》及《asp.net缓存操作技巧总结》。
希望本文所述对大家asp.net程序设计有所帮助。
本文地址:https://www.stayed.cn/item/14784
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我