我有一个我正在尝试编写的网络应用程序,它将获得打印机中剩余耗材的百分比。并显示友好的1-100%的数字。得到那个数字我必须将剩下的数乘以100然后除以总数。
我无法获取来自sql server表的数据并在将其呈现到数据gridview之前对其进行修改。任何帮助将不胜感激。
我已经尝试在后面的代码中将它转换为整数而没有运气。这是我的代码。
ASPX
<asp:GridView ID="GridView2" runat="server" AllowSorting="True"
AutoGenerateColumns="False" BackColor="#DEBA84" BorderColor="#DEBA84"
BorderStyle="None" BorderWidth="1px" CellPadding="3" CellSpacing="2" OnRowDataBound = "changeToPercent"
DataSourceID="SqlDataSource1" EnableModelValidation="True">
<Columns>
<asp:BoundField DataField="p_ipaddress" HeaderText="p_ipaddress"
SortExpression="p_ipaddress" />
<asp:BoundField DataField="s_prtmarkerssuppliesdescription"
HeaderText="s_prtmarkerssuppliesdescription"
SortExpression="s_prtmarkerssuppliesdescription" />
<asp:BoundField DataField="s_prtMarkersSuppliesLevel"
HeaderText="s_prtMarkersSuppliesLevel"
SortExpression="s_prtMarkersSuppliesLevel" />
</Columns>
<FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" />
<HeaderStyle BackColor="#A55129" Font-Bold="True" ForeColor="White" />
<PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" />
<RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" />
<SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" />
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:XrxDBCWWConnectionString %>"
SelectCommand="usp_SUPPLYPERCENTAGE" SelectCommandType="StoredProcedure"
CancelSelectOnNullParameter="False">
<SelectParameters>
<asp:ControlParameter ControlID="percentBox" DefaultValue="10"
Name="PCT_REQUESTED" PropertyName="Text" Type="Int32" />
<asp:Parameter DefaultValue="" Name="PRINTER_ID" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
我没有使用CS代码,因为我所尝试过的一切都惨遭失败
答案 0 :(得分:0)
尝试连接GridView RowDataBound事件,您可以访问Row数据,并在绑定到网格视图之前更新它们。
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowdatabound.aspx
void GridView2_RowDataBound(Object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
// Display the company name in italics.
e.Row.Cells[1].Text = "<i>" + e.Row.Cells[1].Text + "</i>";
}
}
答案 1 :(得分:0)
对于过早的帖子感到抱歉。我放弃了完全编辑我的代码,所以我去了源代码并查看了存储过程,看看我是否可以在那里工作。碰巧你可以在SELECT语句中执行Mathmatical函数。
这是我在选择中添加的内容。
SELECT ((s_prtMarkersSuppliesLevel *100) / s.s_prtMarkersSuppliesMaxCapacity) as s_prtMarkersSuppliesLevel