【问题标题】:display date in textbox from gridview/database in asp.net在 asp.net 中的 gridview/database 在文本框中显示日期
【发布时间】:2021-11-16 04:21:02
【问题描述】:

我使用 ASP.net 开发了一个 web 表单,我想选择行并将该行数据显示到 web 表单中,但日期无法显示在 DateTime 类型的文本框中,有人帮我解决这个问题

ASP.Net 代码

<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#代码

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;
    }
}

【问题讨论】:

  • 文本框中显示了什么?您是否已经浏览过代码并查看 oldObj 的返回结果?
  • @JobesK 没有在文本框中显示,只有 dd-mm-yyyy 在文本框中显示,因为它是 textmode="date"
  • 当我尝试使用任何标签设置日期时,它会成功
  • IIRC,你看到你是怎么用studentGrid.SelectedDataKey[0]得到ID了吗?我认为你必须做这样的事情。使用网格,或者可能是行然后FindControl。如果您搜索“网格行中的 FindControl”或类似内容,这可能已经得到解答。

标签: c# asp.net webforms entity-framework-6


【解决方案1】:

数据键始终按名称引用。

所以,从网格来看是

 GridView1.DataKeys[5]["ID"]

(获取“ID”的第5行datakey值)

在你的情况下,你有选定的行,所以你需要这个:

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

【讨论】:

    【解决方案2】:

    TextMode="Date" 的文本框的日期格式为“yyyy/MM/dd”,但它使用默认时间存储日期,例如 2021/25/09 12:00:00 AM,因此日期是从数据库中获取的,但不是能够设置到文本框,所以我们需要设置正确的日期格式,如

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-12
      • 1970-01-01
      • 2019-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-15
      • 1970-01-01
      相关资源
      最近更新 更多