0

我有一个我正在尝试编写的网络应用程序,它将获取打印机中剩余耗材的百分比。并以友好的 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 代码,因为我尝试过的一切都失败了

4

2 回答 2

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

}

}
于 2013-04-30T14:41:06.837 回答
0

对过早的帖子感到抱歉。我已经完全放弃了编辑我的代码,所以我转到源代码并查看存储过程,看看我是否可以让它在那里工作。碰巧您可以在 SELECT 语句中执行数学函数。

这是我在选择中添加的。

SELECT ((s_prtMarkersSuppliesLevel *100) / s.s_prtMarkersSuppliesMaxCapacity) as s_prtMarkersSuppliesLevel
于 2013-05-02T18:23:30.180 回答