【问题标题】:Set current date in formview在窗体视图中设置当前日期
【发布时间】:2011-05-02 06:58:28
【问题描述】:

我想将当前日期放在我的表单视图“添加日期”中,但是当我在浏览器中加载它时它没有显示。我正在使用后面的代码,但如何用日期和时间显示它?

这是我的代码。

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>

【问题讨论】:

  • 您是否将 DefaultMode 设置为 Insert ?
  • 如何在 DefaultMode 中将其设置为 Inset?
  • @user703510 你有属性 DefaultMode 在 FormView 标记中设置相同..不确定这是否是你想要的

标签: c# asp.net datetime formview


【解决方案1】:

您必须为此使用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;
}

【讨论】:

  • 嗯,它仍然没有显示。在插入模式下如何绑定?当用户单击表单视图中的插入按钮时,我希望当前日期为默认日期。也许我错过了一些东西,我会再看一遍。
  • 那么你能解决这个问题还是仍然面临任何问题?
  • 所以我设法在文本框中显示当前日期。绑定部分是我目前卡住的地方。
  • 您需要在 DetailsView 的插入方法中传递您的日期列 protected void DetailsView1_ItemInserting(object sender, DetailsViewInsertEventArgs e) { e.Values["DateColumnName"] = ((TextBox)DetailsView1.FindControl("dateaddedTextBox “))。文本; }
  • 它是您要存储日期的列的名称。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-21
    • 2011-09-21
    • 2015-11-15
    • 2021-11-05
    • 1970-01-01
    相关资源
    最近更新 更多