2013-04-30 77 views
0

我有一个Web应用程序我正在尝试编写这个程序,它将获得打印机中剩余的耗材百分比。并以友好的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

很抱歉过早职位。我已经放弃了完全编辑我的代码,所以我去了源代码,看着存储过程,看看我是否可以在那里工作。碰巧你可以在你的SELECT语句中做数学函数。

这是我在选择中添加的内容。

SELECT ((s_prtMarkersSuppliesLevel *100)/s.s_prtMarkersSuppliesMaxCapacity) as s_prtMarkersSuppliesLevel 
0

尝试连线了GridView的RowDataBound事件,在这里你将有机会获得该行数据失败,可以在它绑定到网格视图之前更新它们。

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>"; 

} 

} 
+0

这将工作,但我想我应该早些时候陈述如果我没有,我想在数值上做数学函数。所以我必须将其转换为INT然后做百分比计算,但我似乎无法将其转换。 – 2013-04-30 14:44:48

+0

我想你可以使列为TemplateField而不是使用BoundColumn,然后在ItemTemplate中进行转换和计算。 ' – 2013-04-30 18:07:35

+0

感谢的想法,但我设法编辑我的SQL存储过程来做数学 – 2013-04-30 19:37:29

相关问题