1

データベースに、フォームに日付値を含む整数フィールドがありますyyyyMMdddd/MM/yyyyこれをデータグリッドにバインドされたフォームの日付として解析することは可能ですか?

現在、フィールドは次のようにバインドされています。

<asp:boundcolumn datafield="access_date" headertext="Last logged on"></asp:boundcolumn>
4

2 に答える 2

1

データベースの日付にDateを使用しないのはなぜですか? 次のサンプル コードを使用して、int を datetime に変換できます。

var sdate = intdate.ToString();
var date = DateTime.ParseExact(sdate, "yyy/MM/dd", CultureInfo.InvariantCulture);
于 2011-02-01T11:22:19.093 に答える
1

これを案内してくれた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
}
于 2011-02-01T12:40:14.103 に答える