2013-04-30 74 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

相關問題