私はScott Gu Dynamic Linq
クラスを使用しており、 ASP.net
グリッドビューに結果セットをデータバインドする前に、短い日時を返すように日時を変換しようとしています。今、私はgridview行のデータバインドイベントを通過し、各セルをチェックして日付であるかどうかを確認し、日付である場合は日付を短縮日付に変換できることを知っていますが、これは非常に面倒であり、私はそう感じていません非常に効率的です。
次のように、DynamicLinqでselectステートメントを作成しています。
フィルターは次のように情報を取得します。
foreach (KeyValuePair<string,string> kvp in dictFilters)
{
filter += kvp.Key + " as " + kvp.Value.Replace("-", "_").Replace(" ", "_") + ",";
}
var result = db.ViewADHOCContractInfos.Select("new(" + filter + ")");
これは私に結果セットを与えます:
{SELECT [t0].[dtmAward] AS [Award_Date], [t0].[guidFromId], [t0].[strFundingNumber] AS [Funding_Number], [t0].[dtmCertified] AS [Certified_Date], [t0].[strFundingNumberStatus] AS [Funding_Status]
FROM [dbo].[ViewADHOCInfo] AS [t0]
}
今私が欲しいのはこれです:
{SELECT Convert(VarChar, [t0].[dtmAward], 101) AS [Award_Date], [t0].[guidFromId], [t0].[strFundingNumber] AS [Funding_Number], [t0].[dtmCertified] AS [Certified_Date], [t0].[strFundingNumberStatus] AS [Funding_Status]
FROM [dbo].[ViewADHOCInfo] AS [t0]
}
動的Linqを使用してselectステートメントでSQL変換を追加することは可能ですか?
あなたはフォーマットの問題です:
列のDataFormatStringプロパティを次のように設定するだけです。
DataFormatString="{0:MM/dd/yyy}"
完全なコンテキスト:
<asp:BoundField DataField="DateColumn"
HeaderText="Date"
DataFormatString="{0:MM/dd/yy}" />
または、ケースに適した形式にすると、日付が適切にフォーマットされます。