本文实例讲述了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
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我