问题描述
|
我正在通过linq到sql调用一个巨大的存储过程,该过程将一些编号的数据从0带回9。我希望能够将任何零显示为null(因此没有超链接)。我可以在存储过程中执行此操作,但是这将使它很难阅读和维护(有很多情况下的情况逻辑在进行中)。
我有以下代码将我的处理结果链接到linqdatasource。有没有一种方法可以通过在绑定之前或超链接上的事实之后格式化数据来更新所有记录?
protected void LinqMainMenu_Selecting(object sender,LinqDataSourceSelectEventArgs e)
{
var db = new App_Data.MYAppDataContext();
e.Result = db.sp_MainMenuTest( (Int16)Session[\"myid\"]);
}
谢谢
解决方法
您可以通过执行以下操作来重新格式化结果:
e.Result = db.sp_MainMenuTest( (Int16)Session[\"myid\"]).Select(i => new
{
Field = (i.Field == 0) ? null : i.Field
});
如果您不能使用此方法,则可以始终在GridView.RowDataBound事件处理程序中执行此操作,获取单元格值,如果为零,则重新格式化。
HTH。