データベースに、フォームに日付値を含む整数フィールドがありますyyyyMMdd
。dd/MM/yyyy
これをデータグリッドにバインドされたフォームの日付として解析することは可能ですか?
現在、フィールドは次のようにバインドされています。
<asp:boundcolumn datafield="access_date" headertext="Last logged on"></asp:boundcolumn>
データベースに、フォームに日付値を含む整数フィールドがありますyyyyMMdd
。dd/MM/yyyy
これをデータグリッドにバインドされたフォームの日付として解析することは可能ですか?
現在、フィールドは次のようにバインドされています。
<asp:boundcolumn datafield="access_date" headertext="Last logged on"></asp:boundcolumn>
データベースの日付にDateを使用しないのはなぜですか? 次のサンプル コードを使用して、int を datetime に変換できます。
var sdate = intdate.ToString();
var date = DateTime.ParseExact(sdate, "yyy/MM/dd", CultureInfo.InvariantCulture);
これを案内してくれたgorに感謝します。彼の答え自体は完全な解決策ではありませんでしたが、コメントを行ったり来たりした後、良い解決策にたどり着きました。
asp:boundcolumn
グリッドでa を使用する代わりにasp:templatecolumn
、バインド式を使用して表示する必要がありました ( gorasp:listview
がコメントで説明したように、古いコントロールを使用している間、彼はコントロールの使用に基づいて答えたと思いますasp:datagrid
)。
<columns>
コレクションasp:datagrid
:<asp:TemplateColumn headertext="Last logged on" >
<ItemTemplate><%#DateStringFromInt(Eval("access_date"))%></ItemTemplate>
</asp:TemplateColumn>
protected string DateStringFromInt(object value)
{
DateTime date;
if (DateTime.TryParseExact(value.ToString(), "yyyyMMdd",
CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal,
out date))
{
return date.ToString("dd/MM/yyyy");
}
return value.ToString(); //Return original if not expected format
}