1

データベースからいくつかのレコードを表示および変更するために、asp.net プロジェクトで gridview を使用しています。データベースには、start_date と end_date の 2 つの列があります。新しいレコードが作成されると、これらの列には null が含まれますが、後で gridview update コマンドを使用して変更できます。

gridview には、2 つのカレンダー コントロールを配置した 2 つのテンプレート フィールド (start_date と end_date という名前) があります。gridview の更新リンクをクリックすると、null 値がカレンダーにバインドされているため、常にエラーが返されます。このヘルパー関数を使用して解決しました:

protected DateTime ReplaceNull(Object param)
{
    if (param.Equals(DBNull.Value))
    {
        return DateTime.Now;
    }
    else
    {
        return Convert.ToDateTime(param);
    }
}

カレンダー コントロールの SelectedDate で次の 2 つのカスタム式を使用しました。

ReplaceNull(Eval("start_date"))
ReplaceNull(Eval("end_date"))

問題は、日付の選択時にカレンダーをバインドする双方向データがデータベース テーブルを更新しないことです。回避策はありますか? あるいは、より良い解決策があれば幸いです。

4

1 に答える 1