「セッション」と呼ばれるデータベース内のテーブルからグリッドビューを動的にバインドしています。次のようなlinqクエリを使用するメソッドから情報を取得します。
var s = from sessions in datacontext.Sessions
where sessions.test == id
orderby sessions.ID ascending
select sessions;
gridView.DataSource = qsessions;
gridView.DataBind();
セッションには、日付(月/日/年)を表示するために最小化するdateTimeフィールドが含まれています。私がグーグル検索で読んだものから、解決策は次のようなものを使用してグリッドビューのaspxマークアップでフォーマットを指定することです:
<asp:TextBox ID="txtDate" runat="server" Text='<%# Eval("dateTime", "{0:MM/dd/yyyy}") %>'></asp:TextBox>
動作していないようで、日付の後の時刻が表示されます。足りないものはありますか?感謝します!
試してみてください:
<asp:TextBox ID="txtDate" runat="server" Text='<%# Convert.ToDateTime(Eval("dateTime")).ToString("d") %>'></asp:TextBox>
その他のフォーマットオプションについては、次の役立つサイトを参照してください。
グリッド内のTextBoxのOnDataBindingイベントを実装します。
<asp:TextBox ID="txtDate" runat="server" OnDataBinding="txtDate_DataBinding">
</TextBox>
次に、コードビハインドでOnDataBindingイベントを実装します。
protected void txtDate_OnDataBinding(object sender, System.EventArgs e)
{
TextBox txt = (TextBox)(sender);
txt.Text = (DateTime)(Eval("YourDateField")).ToString("MM/dd/yyyy");
}
私はすべてのコードをコードビハインドに入れ、aspxページには何も入れないことを好みますが、そこに埋め込むこともできます。これは、コードビハインドでそれを行うことを好む理由を説明するスレッドへのリンクです。
ASPグリッドビュー自体が日付形式をサポートしています。追加してみてください
DataFormatString="{0:dd-MM-yyyy}"
Gridviewは、DataFormatStringによる日付フォーマットをサポートしています。例えば-
<asp:BoundField DataField="Date" HeaderText="Visit date" DataFormatString="{0:dd-MMM-yyyy}" >
</asp:BoundField>
そしてそのように見える-
訪問日
2013年10月15日
2013年10月12日
2013年10月11日
<asp:Label ID="lblDateBudget" runat="server" Text='<%# Eval("DateBudget", "{0:MM/d/yyyy}")%>'></asp:Label>
こんにちは友達、これはあなたが上で定義した問題の別の種類の解決策です。日時ではなくデータ型の日付を設定し、この方法でアクセスを試みます。これがお役に立てば幸いです。
日時変数は文字列として評価されていると思います。それをDateTimeにキャストしてみてください。