C#如何从datable行单元格中使用textmode = datetimelocal填充aspx文本框

时间:2018-08-18 20:14:58

标签: c# asp.net code-behind

我已经尝试解决这个问题了好几个小时,但距离解决这个问题还很遥远。

发生了什么事,我正在尝试填充下面的控件

<asp:TextBox ID = "TxtDateReceived" runat = "server" 
CssClass = "TxtFont" Width = "300px" Height = "25px" 
TextMode = "DateTimeLocal"> </asp:TextBox>

将值存储在数据表行的单元格中,如下所示(dt加载了提取sql数据的方法,而且我已经确定dt.Rows[0][7]它不为空)

TxtDateReceived.Text = dt.Rows[0][7].ToString();

dt.Rows[0][7]中的数据为8/18/2018 13:38:00

PD,这是我尝试填充字段时得到的结果

enter image description here

3 个答案:

答案 0 :(得分:1)

在其他地方找到了这个答案(以供将来参考)。

尽管日期/时间在文本框中显示为mm / dd / yyyy,但实际上必须将其格式化为yyyy-MM-dd才能从后面的代码中进行填充。而且仅在Chrome中也是如此。至少对我来说。

不确定时间格式。对于我的应用程序,我只需要日期,并且如果我将其传递为MM/dd/yyyy,Chrome将不会在代码后面填充值。

例如,在我的情况下:

        tbDate.Text = DateTime.Now.ToString("yyyy-MM-dd");

那行得通。

答案 1 :(得分:0)

我被带走了 DataTable ,其中只有几行 Date格式的临时行,并且对我来说绝对不错。

C#测试代码

DataTable table = new DataTable();
    table.Columns.Add("Date");
    for(int i=18;i<21;i++)
    {
        table.Rows.Add("8/"+i+"/2018 13:38:00");
    }
    TxtDateReceived.Text = table.Rows[2][0].ToString();

Aspx设计

<asp:TextBox ID = "TxtDateReceived" runat = "server" 
    CssClass = "TxtFont" Width = "300px" Height = "25px" 
    TextMode = "DateTimeLocal"> </asp:TextBox>

输出结果 enter image description here

此外,它可能无法从sql中获取数据,也可能存在其他冲突,但显示效果很好。

答案 2 :(得分:0)

当我不得不将gridview数据调用到文本框中时,我也做了同样的事情。但是我做的有些不同,对我来说效果很好。

 EntityManager em = getEntityManager();
 em.getTransaction().begin();
 JpaProcessDAO pdao = new JpaProcessDAO(em);
 Process oldProcess = pDao.findById(processid);

\\ SOME STUFF THAT I THINK DOES NOT MATTER...

 for (Step step: oldProcess.getSteps()) {
 step.setProcess(null);
 em.persist(step);  \\ <================EXCEPTION THROWN HERE
 }

 \\SOME MORE STUFF I THINK DOES NOT MATTER

 em.merge(oldProcess);
 em.getTransaction().commit();
 }
 catch (Exception e)
 {
    \\EXCEPTION CAUGHT HERE
 }     

我不确定这是否正是您要的内容。但是从您的问题来判断,这听起来与我前一阵子非常接近。