在formview中设置当前日期

时间:2011-05-02 06:58:28

标签: c# asp.net datetime formview

我想将当前日期放在我的formview'dateadded'中,但是当我在浏览器中加载它时它没有显示。我正在使用代码,但如何显示日期和时间?

这是我背后的代码。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;


namespace LibrarySystem.AdminPage
{
    public partial class ManageBooks : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if(FormView1.CurrentMode == FormViewMode.Insert)
            {
                TextBox dateadded = FormView1.FindControl("dateaddedTextBox") as TextBox;
                    dateadded.Text = DateTime.Now.ToString("d");
            }
        }
    }
}

这是我的完整设计

<%@ Page Title="" Language="C#" MasterPageFile="~/Site1.Master" AutoEventWireup="true" CodeBehind="Lending.aspx.cs" Inherits="LibrarySystem.Test" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
    </asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    <h3>
    Lending of Books</h3>
<p>
    <asp:FormView ID="FormView1" runat="server" DataSourceID="lendDataSource" DefaultMode="Insert" OnDataBound="FormView1_DataBound">
        <EditItemTemplate>

            Book ID/ISBN:
            <asp:TextBox ID="bookidTextBox" runat="server" Text='<%# Bind("bookid") %>' />
            <br />

            Book Title:
            <asp:TextBox ID="booktitleTextBox" runat="server" 
                Text='<%# Bind("booktitle") %>' />
            <br />

            Employee ID:
            <asp:TextBox ID="employeeidTextBox" runat="server" 
                Text='<%# Bind("employeeid") %>' />
            <br />

            Department:
            <asp:TextBox ID="departmentTextBox" runat="server" 
                Text='<%# Bind("department") %>' />
            <br />

            Date borrowed:
            <asp:TextBox ID="dateborrowedTextBox" runat="server" 
                Text='<%# Bind("dateborrowed") %>' />
            <br />

            <asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True" 
                CommandName="Update" Text="Update" />
                &nbsp;<asp:LinkButton ID="UpdateCancelButton" runat="server" 
                CausesValidation="False" CommandName="Cancel" Text="Cancel" />
        </EditItemTemplate>

        <InsertItemTemplate>

            Book:
            <asp:DropDownList ID="DropDownList1" runat="server" 
                DataSourceID="booktitleDataSource" DataTextField="booktitle" 
                DataValueField="bookid" SelectedValue='<%# Bind("bookid", "{0}") %>'>
            </asp:DropDownList>

            <asp:SqlDataSource ID="booktitleDataSource" runat="server" 
                ConnectionString="<%$ ConnectionStrings:LibrarySystemConnectionString %>" 
                SelectCommand="SELECT [bookid], [booktitle] FROM [TblBooks]">
            </asp:SqlDataSource>
            <br />

            Employee ID:
            <asp:TextBox ID="employeeidTextBox" runat="server" 
                Text='<%# Bind("employeeid") %>' />
            <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="* Required" ControlToValidate="employeeidTextBox" ValidationGroup="lendbook">
            </asp:RequiredFieldValidator>
            <br />

            Department:
            <asp:TextBox ID="departmentTextBox" runat="server" 
                Text='<%# Bind("department") %>' />
            <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="* Required" ControlToValidate="departmentTextBox" ValidationGroup="lendbook">
            </asp:RequiredFieldValidator>
            <br />

            Date borrowed:
            <asp:TextBox ID="dateborrowedTextBox" runat="server" 
                Text='<%# Bind("dateborrowed") %>' />
            <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ErrorMessage="* Required" ControlToValidate="dateborrowedTextBox" ValidationGroup="lendbook">
            </asp:RequiredFieldValidator>
            <br />

            <asp:LinkButton ID="InsertButton" runat="server" CausesValidation="True"  ValidationGroup="lendbook" 
                CommandName="Insert" Text="Insert" />
                &nbsp;<asp:LinkButton ID="InsertCancelButton" runat="server" CausesValidation="False" 
                CommandName="Cancel" Text="Cancel" />
        </InsertItemTemplate>

        <ItemTemplate>
            <asp:LinkButton ID="NewButton" runat="server" CausesValidation="False" 
                CommandName="New" Text="New" />
        </ItemTemplate>

        <EmptyDataTemplate>
            <asp:LinkButton ID="NewButton" runat="server" CausesValidation="False" 
                CommandName="New" Text="New" />
        </EmptyDataTemplate>
    </asp:FormView>
</p>
    <p>
    <asp:SqlDataSource ID="lendDataSource" runat="server" 
        ConnectionString="<%$ ConnectionStrings:LibrarySystemConnectionString %>" 
        DeleteCommand="DELETE FROM [LendTable] WHERE [lenid] = @lenid" 
        InsertCommand="INSERT INTO [LendTable] ([bookid], [employeeid], [department], [dateborrowed], [datereturned]) VALUES (@bookid, @employeeid, @department, @dateborrowed, @datereturned)" 
        SelectCommand="SELECT dbo.LendTable.bookid, dbo.TblBooks.booktitle, dbo.LendTable.employeeid, dbo.LendTable.department, dbo.LendTable.dateborrowed FROM dbo.LendTable INNER JOIN dbo.TblBooks ON dbo.LendTable.bookid = dbo.TblBooks.bookid" 

        UpdateCommand="UPDATE [LendTable] SET [bookid] = @bookid, [employeeid] = @employeeid, [department] = @department, [dateborrowed] = @dateborrowed, [datereturned] = @datereturned WHERE [lenid] = @lenid">
        <DeleteParameters>
            <asp:Parameter Name="lenid" Type="Int32" />
        </DeleteParameters>
        <UpdateParameters>
            <asp:Parameter Name="bookid" Type="Int64" />
            <asp:Parameter Name="employeeid" Type="string" />
            <asp:Parameter Name="department" Type="String" />
            <asp:Parameter Name="dateborrowed" Type="DateTime" />
            <asp:Parameter Name="datereturned" Type="DateTime" />
            <asp:Parameter Name="lenid" Type="Int32" />
        </UpdateParameters>
        <InsertParameters>
            <asp:Parameter Name="bookid" Type="Int64" />
            <asp:Parameter Name="employeeid" Type="string" />
            <asp:Parameter Name="department" Type="String" />
            <asp:Parameter Name="dateborrowed" Type="DateTime" />
            <asp:Parameter Name="datereturned" Type="DateTime" />
        </InsertParameters>
    </asp:SqlDataSource>
</p>
<p>
    <asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
        AllowSorting="True" AutoGenerateColumns="False" CellPadding="4" 
        DataKeyNames="lenid" DataSourceID="lendgridviewDataSource" ForeColor="#333333" 
        GridLines="None">
        <RowStyle BackColor="#EFF3FB" />
        <Columns>
            <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" />
            <asp:BoundField DataField="bookid" HeaderText="Book ID/ISBN" 
                SortExpression="bookid" />
            <asp:BoundField DataField="booktitle" HeaderText="Book Title" 
                SortExpression="booktitle" />
            <asp:BoundField DataField="EmployeeID" HeaderText="Employee ID" 
                SortExpression="EmployeeID" />
            <asp:BoundField DataField="department" HeaderText="Department" 
                SortExpression="department" />
            <asp:BoundField DataField="dateborrowed" HeaderText="Date Borrowed" 
                SortExpression="dateborrowed" />
            <asp:BoundField DataField="datereturned" HeaderText="Date Returned" 
                NullDisplayText="-- not yet returned --" SortExpression="datereturned" />
        </Columns>
        <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
        <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
        <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
        <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
        <EditRowStyle BackColor="#2461BF" />
        <AlternatingRowStyle BackColor="White" />
    </asp:GridView>
    <asp:SqlDataSource ID="lendgridviewDataSource" runat="server" 
        ConnectionString="<%$ ConnectionStrings:LibrarySystemConnectionString %>" 
        DeleteCommand="DELETE FROM [LendTable] WHERE [lenid] = @lenid" 
        InsertCommand="INSERT INTO [LendTable] ([bookid], [department], [EmployeeID], [dateborrowed], [datereturned]) VALUES (@bookid, @department, @EmployeeID, @dateborrowed, @datereturned)" 
        SelectCommand="SELECT dbo.LendTable.lenid, dbo.LendTable.bookid, dbo.LendTable.department, dbo.LendTable.EmployeeID, dbo.LendTable.dateborrowed, dbo.LendTable.datereturned, dbo.TblBooks.booktitle FROM dbo.LendTable INNER JOIN dbo.TblBooks ON dbo.LendTable.bookid = dbo.TblBooks.bookid" 
        UpdateCommand="UPDATE [LendTable] SET [bookid] = @bookid, [department] = @department, [EmployeeID] = @EmployeeID, [dateborrowed] = @dateborrowed, [datereturned] = @datereturned WHERE [lenid] = @lenid">
        <DeleteParameters>
            <asp:Parameter Name="lenid" Type="Int32" />
        </DeleteParameters>
        <UpdateParameters>
            <asp:Parameter Name="bookid" Type="Int64" />
            <asp:Parameter Name="department" Type="String" />
            <asp:Parameter Name="EmployeeID" Type="String" />
            <asp:Parameter Name="dateborrowed" Type="DateTime" />
            <asp:Parameter Name="datereturned" Type="DateTime" />
            <asp:Parameter Name="lenid" Type="Int32" />
        </UpdateParameters>
        <InsertParameters>
            <asp:Parameter Name="bookid" Type="Int64" />
            <asp:Parameter Name="department" Type="String" />
            <asp:Parameter Name="EmployeeID" Type="String" />
            <asp:Parameter Name="dateborrowed" Type="DateTime" />
            <asp:Parameter Name="datereturned" Type="DateTime" />
        </InsertParameters>
    </asp:SqlDataSource>
</p>
<p>
    <asp:HyperLink ID="HyperLink4" runat="server" 
        NavigateUrl="~/Admin/Returning.aspx">Returning</asp:HyperLink>
</p>
        <asp:HyperLink ID="HyperLink5" runat="server" 
            NavigateUrl="~/Admin/AdminPage.aspx">Back to Admin Page</asp:HyperLink>
    <p>
        &nbsp;</p>

    </asp:Content>

2 个答案:

答案 0 :(得分:2)

您必须使用Databound event ...

 protected void FormView1_DataBound(object sender, EventArgs e)
{
    if (FormView1.CurrentMode == FormViewMode.Insert)
    {
        TextBox dateadded = FormView1.FindControl("dateaddedTextBox") as TextBox;
        dateadded.Text = DateTime.Now.ToString("d");
    }
}

编辑:您需要在DetailsView的插入方法中传递日期列

protected void DetailsView1_ItemInserting(object sender, DetailsViewInsertEventArgs e)
{
    e.Values["DateColumnName"] = ((TextBox)DetailsView1.FindControl("dateaddedTextBox")).Text;
}

答案 1 :(得分:1)

不要在Page_Load()方法中执行此操作,而是尝试在Page_PreRender()方法中执行此操作。