データベースからいくつかのレコードを表示および変更するために、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"))
問題は、日付の選択時にカレンダーをバインドする双方向データがデータベース テーブルを更新しないことです。回避策はありますか? あるいは、より良い解決策があれば幸いです。