2011-05-26 23 views
2

我打電話給一個巨大的存儲過程通過LINQ到SQL,帶回從0到9的一些編號數據。我想能夠顯示任何零作爲空值(所以有沒有超鏈接)。我可以在我的存儲過程中執行此操作,但這會使讀取和維護非常困難(有很多案例邏輯正在進行)。asp.hyperlink在gridview格式0爲空

我有以下代碼將我的proc結果鏈接到linqdatasource。有沒有辦法通過在綁定之前或在超鏈接之後格式化數據來更新所有記錄?

protected void LinqMainMenu_Selecting(object sender, LinqDataSourceSelectEventArgs e) 
{ 

    var db = new App_Data.MYAppDataContext(); 
    e.Result = db.sp_MainMenuTest((Int16)Session["myid"]); 

} 

感謝

回答

2

你可以重新做類似的結果:

e.Result = db.sp_MainMenuTest((Int16)Session["myid"]).Select(i => new 
{ 
    Field = (i.Field == 0) ? null : i.Field 
}); 

如果您不能使用這種方法,你總是中央社做在GridView.RowDataBound事件處理程序,獲得單元格值,如果爲零,則重新格式化。

HTH。

+0

這很好用!唯一需要注意的是你需要重新選擇所有的列(這對於liq來說是有意義的) – Limey 2011-05-26 19:51:43

+0

是的,你必須這樣做,對於EF來說,這是因爲你正在有效地創建一個新類並複製屬性。 – 2011-05-26 19:59:03