C# 使用变量编辑ASP.NET网格视图
在myC# 使用变量编辑ASP.NET网格视图,c#,html,asp.net,sql-server,gridview,C#,Html,Asp.net,Sql Server,Gridview,在mygridview中编辑某些列值时,其他值需要根据该值进行更改 例如: 编辑卡车柴油列值时,必须根据该值更改Kmperl和RandsPerKM值,反之亦然。公式如下: kmperl=TotaKM/TruckDiesel+trailerdesel和RandsPerKM=Amount/TotalKM. 这必须在gridview的编辑列中完成 然后,所有这些值都存储在数据库的表中 以下是ASP.Net html源代码: UpdateCommand="UPDATE [Loads] SET
gridview
中编辑某些列值时,其他值需要根据该值进行更改
例如:
编辑卡车柴油列值时,必须根据该值更改Kmperl和RandsPerKM值,反之亦然。公式如下:
kmperl=TotaKM/TruckDiesel+trailerdesel和RandsPerKM=Amount/TotalKM.
这必须在gridview
的编辑列中完成
然后,所有这些值都存储在数据库的表中
以下是ASP.Net html源代码:
UpdateCommand="UPDATE [Loads] SET [loadDate] = @loadDate, [loadDay] = @loadDay, [loadClient] = @loadClient, [loadDriver] = @loadDriver, [loadLoadingPoint1] = @loadLoadingPoint1, [loadLoadingPoint2] = @loadLoadingPoint2, [loadLoadingPoint3] = @loadLoadingPoint3, [loadOffloadingPoint1] = @loadOffloadingPoint1, [loadOffloadingPoint2] = @loadOffloadingPoint2, [loadOffloadingPoint3] = @loadOffloadingPoint3, [loadStops] = @loadStops, [loadNumber] = @loadNumber, [loadPodNumber] = @loadPodNumber, [loadAmount] = @loadAmount, [loadTruckReg] = @loadTruckReg, [loadTrailerReg] = @loadTrailerReg, [loadCategory] = @loadCategory, [loadDayOut] = @loadDayOut, [loadNightOut] = @loadNightOut, [loadOdoStart] = @loadOdoStart, [loadOdoEnd] = @loadOdoEnd, [loadTruckDiesel] = @loadTruckDiesel, [loadTrailerDiesel] = @loadTrailerDiesel, [loadInvoiceNumber] = @loadInvoiceNumber, [loadReceiptNumber] = @loadReceiptNumber, [loadKMperLiter] = @loadKMperLiter, [loadRandsPerKM] = @loadRandsPerKM, [loadDriverWage] = @loadDriverWage, [clientRecieved] = @clientRecieved, [loadTotalKM] = @loadTotalKM, [note] = @note WHERE [loadID] = @loadID">
<UpdateParameters>
<asp:Parameter DbType="Date" Name="loadDate" />
<asp:Parameter Name="loadDay" Type="String" />
<asp:Parameter Name="loadClient" Type="String" />
<asp:Parameter Name="loadDriver" Type="String" />
<asp:Parameter Name="loadLoadingPoint1" Type="String" />
<asp:Parameter Name="loadLoadingPoint2" Type="String" />
<asp:Parameter Name="loadLoadingPoint3" Type="String" />
<asp:Parameter Name="loadOffloadingPoint1" Type="String" />
<asp:Parameter Name="loadOffloadingPoint2" Type="String" />
<asp:Parameter Name="loadOffloadingPoint3" Type="String" />
<asp:Parameter Name="loadStops" Type="Int32" />
<asp:Parameter Name="loadNumber" Type="String" />
<asp:Parameter Name="loadPodNumber" Type="String" />
<asp:Parameter Name="loadAmount" Type="Decimal" />
<asp:Parameter Name="loadTruckReg" Type="String" />
<asp:Parameter Name="loadTrailerReg" Type="String" />
<asp:Parameter Name="loadCategory" Type="String" />
<asp:Parameter Name="loadDayOut" Type="Int32" />
<asp:Parameter Name="loadNightOut" Type="Int32" />
<asp:Parameter Name="loadOdoStart" Type="Int32" />
<asp:Parameter Name="loadOdoEnd" Type="Int32" />
<asp:Parameter Name="loadTruckDiesel" Type="Decimal" />
<asp:Parameter Name="loadTrailerDiesel" Type="Decimal" />
<asp:Parameter Name="loadInvoiceNumber" Type="String" />
<asp:Parameter Name="loadReceiptNumber" Type="String" />
<asp:Parameter Name="loadKMperLiter" Type="Decimal" />
<asp:Parameter Name="loadRandsPerKM" Type="Decimal" />
<asp:Parameter Name="loadDriverWage" Type="Int32" />
<asp:Parameter Name="clientRecieved" Type="String" />
<asp:Parameter Name="loadTotalKM" Type="Int32" />
<asp:Parameter Name="note" Type="String" />
<asp:Parameter Name="loadID" Type="Int32" />
</UpdateParameters>
UpdateCommand=“UPDATE[Loads]SET[loadDate]=@loadDate,[loadDay]=@loadDay,[loadClient]=@loadClient,[loadDriver]=@loadDriver,[LoadLoadLoadingPoint1]=@LoadingPoint1,[loadLoadingPoint2]=@LoadingPoint2,[LoadingPoint3]=@loadLoadingPoint3,[loadOffloadingPoint1]=@loadOffloadingPoint1,[loadOffloadingPoint2]=@LoadDownloadingPoint2,[LoadDownloadingPoint3]=@LoadDownloadingPoint3,[loadStops]=@loadStops,[loadNumber]=@loadPodNumber,[loadAmount]=@loadAmount,[loadTruckReg]=@loadTruckReg,[loadTrailerReg]=@loadCategory,[loadDayOut]=@loadDayOut,[loadNightOut]=@loadNightOut,[loadOdoStart]=@loadOdoStart,[loadOdoEnd]=@loadOdoEnd,[loadTruckDiesel]=@loadTruckDiesel,[loadTrailerDiesel]=@loadTrailerDiesel,[loadInvoiceNumber]=@loadInvoiceNumber,[loadReceiptNumber]=@loadReceiptNumber,[LoadKmperl]=@LoadKmperl,[loadRandsPerKM]=@loadRandsPerKM,[loadDriverWage]=@loaddriverage,[clientRecieved]=@clientRecieved,[loadTotalKM]=@loadTotalKM,[note]=@note其中[loadID]=@loadID”>
提前谢谢 不需要。。仅创建一个虚拟表以拾取栅格视图值,然后根据需要更改它,再次将其重新指定给栅格视图方法1: 创建存储过程
Create Proc _SPUpdateTableName
@id int,
@truckvalue numeric(18,0)
as
begin
Update TableName set KMPerLiter = TotaKM/(@truckvalue+TrailerDiesel) , TruckDiesel = @truckvalue where ID =@id
end
关于SqlDataSource代码:
<asp:SqlDataSource ID="LocalServerDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:SiteSqlServer %>" UpdateCommand="_SPUpdateTableName" UpdateCommandType="StoredProcedure">
<UpdateParameters>
<asp:Parameter Name="id" Type="Int32" />
<asp:Parameter Name="truckvalue " Type="Decimal" />
</UpdateParameters>
</asp:SqlDataSource>
注意:这些代码仅在逻辑上,我认为适用于您未经测试的情况。请根据您的要求进行更改。我认为您不需要sql server标记为什么不?这一切都与数据库有关。网格视图中的数据来自连接的sql数据库。请输入一些代码。为了在编辑列时获得更好的想法,您可以计算要修改的值,然后为同一个表调用update语句并再次绑定GridView。@Rojalin Sahoo是否仍在那里?您可以告诉我如何进行此操作吗?非常感谢Rojalin!回答得很好。
protected void grdvechile_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
try
{
decimal truckvalue= Convert.ToDecimal( grdvechile.Rows[e.RowIndex].Cells[1].Text);
// fetch all value as needed and typecast
decimal KMPerLiter = TotaKM/(truckvalue+TrailerDiesel);
//Pass your required parameter
LocalServerDataSource.UpdateParameters["truckvalue"].DefaultValue = truckvalue;
LocalServerDataSource.UpdateParameters["KMPerLiter "].DefaultValue = KMPerLiter ;
LocalServerDataSource.Update();
}
catch { }
}