2014-09-24 88 views
1
<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看起來很混亂和擁擠,我試圖到達BoundField的DataFormatString="{0:#,### B}",代碼分爲1024,但是不能成功。如何在代碼隱藏中修改BoundField的DataFormatString?

我有下面的代碼,我不知道在=的左側寫什麼。我需要一個代碼,如

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

如何將文件大小值從字節更改爲KiloBytes?

回答

0

您可以使用RowDataBound事件GridView的操縱底層的數據是這樣的:

<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); 
}