Home > Software engineering >  display date in textbox from gridview/database in asp.net
display date in textbox from gridview/database in asp.net

Time:09-26

I develop one web form by using ASP.net, I want to select the row and display that row data into web form but the date cannot display in the textbox of type DateTime, someone helps me to sort out this issue

ASP.Net Code

<div class="col-4">
    <asp:Label ID="Label7" runat="server" Text="Birth Date"></asp:Label>
    <asp:TextBox ID="txtBirthDate" runat="server" TextMode="Date"></asp:TextBox>
    </br>
    <asp:Button ID="btnSave" Text="Save" runat="server" OnClick="btnSave_Click" />
</div>
<div class="col-8">
    <asp:GridView ID="studentGrid" runat="server"
        DataKeyNames="Id"
        OnSelectedIndexChanged="StudentGrid_SelectedIndexChanged">
        <Columns>
            <asp:CommandField ButtonType="Button" ShowSelectButton="True" />
        </Columns>
    </asp:GridView>
</div>

c# Code

protected void StudentGrid_SelectedIndexChanged(object sender, EventArgs e)
{
    try
    {
        selId = Convert.ToInt16(studentGrid.SelectedDataKey[0]);

        if (selId > 0)
        {
            using (var ctx = new dbTestEntities())
            {
                var oldObj = ctx.tblStudents.Find(selId);
                if (oldObj != null)
                {
                    txtBirthDate.Text = oldObj.BirthDate.ToString();
                }
            }
        }
    }
    catch (Exception)
    {
        throw;
    }
}

CodePudding user response:

The data keys is always referenced by name.

So, from the grid it is

 GridView1.DataKeys[5]["ID"]

(Get the 5th row datakey value of "ID")

In your case, you have the selected row, so you need this:

selId = Convert.ToInt16(studentGrid.SelectedDataKey["ID"]);

CodePudding user response:

Date format of the textbox with TextMode="Date" is "yyyy/MM/dd" but it stores date with default time like 2021/25/09 12:00:00 AM so the date is fetched from database but not able to set to the textbox, So we need to set the proper format of date like


    txtBirthDate.Text = String.Format("{0:yyyy/MM/dd}", oldObj.BirthDate);

  • Related