[ASP.NET] Gridview動態增加欄位與Null值處理

.CS
//...
StringBuilder strSql = new StringBuilder(string.Empty);
strSql.Append("usp_UserReportDownLoad");
SqlCommand cmd = new SqlCommand(strSql.ToString());
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@BDate", BDate);
cmd.Parameters.AddWithValue("@EDate", EDate);
DataTable dt = DB.GetDataTable(cmd);

//依據回傳的DataTable,動態增加欄位。
//第一欄固定,所以從第2欄開始 
for (int i = 1; i < dt.Columns.Count; i++)            
{                
    BoundField oBF = new BoundField();                
    oBF.DataField = dt.Columns[i].ColumnName;                
    oBF.HeaderText = dt.Columns[i].ColumnName;                
    oBF.NullDisplayText = "0";    //NULL值處理            
    this.GridView1.Columns.Add(oBF);           
 }           

 this.GridView1.DataSource = dt;
 this.GridView1.DataBind();
.ASPX
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" AllowPaging="True" AllowSorting="True" onrowdatabound="GridView1_RowDataBound" ShowFooter="true"  >
<PagerSettings Visible="False" Mode="NumericFirstLast" />
<Columns>
</Columns>
<EmptyDataTemplate>
    目前尚無資料!
</EmptyDataTemplate>
</asp:GridView>

留言

這個網誌中的熱門文章

[MS SQL] 使用PIVOT 做兩個欄位的交叉分析(動態欄位)

[MS SQL] 將輸入的時間(分、秒)轉換成中文時間的函數