如何在代码隐藏中修改BoundField的DataFormatString?

时间:2014-09-24 06:54:59

标签: c# asp.net gridview string-formatting

<asp:GridView runat="server" ID="articleList" AutoGenerateColumns="False" DataKeyNames="FullName, Name">
    <Columns>
        <asp:BoundField DataField="Name" HeaderText="Name" />
        <asp:BoundField DataField="Length" HeaderText="Size" DataFormatString="{0:#,### B}" />
    </Columns>
</asp:GridView>

因为Byte看起来令人困惑和拥挤,我试图通过代码划分为1024来获取BoundField的DataFormatString="{0:#,### B}",但无法成功。

我有以下代码,我不知道在=的左侧写什么。我需要像

这样的代码
 articleList.BoundFields[1].DataFormatString = String.Format("{0:#,### KB}", Math.Round(Convert.ToDecimal(Eval("Length")) / Convert.ToDecimal(1024), 2));

如何将文件大小值从Bytes更改为KiloBytes?

1 个答案:

答案 0 :(得分:0)

您可以使用GridView的{​​{3}}事件来操纵基础数据,如下所示:

<asp:GridView runat="server" ID="articleList" RowDataBound="OnGridViewRowDataBound">
    ...
</asp:GridView>


protected void OnGridViewRowDataBound(object sender, GridViewRowEventArgs e)
{
    var dataItem = e.DataItem as YourClass;
    e.Row.Cells[1].Text = ConvertToKiloBytes(dataItem);
}