【问题标题】:Get correct data on the odd no of records in datalist获取数据列表中奇数记录的正确数据
【发布时间】:2015-10-21 23:16:11
【问题描述】:

我有一个数据列表,其中有一个显示日期时间的标签,并且在数据列表中有一个网格。问题是我得到了所需的时间格式(例如上午 1:48)和网格内的数据仅在奇数记录例如 1 3 5 7 记录是正确的,2 4 6 7 显示网格中的空记录,标签也显示不正确的格式(10/21/2015 1:48:20 AM)。这是代码。 onitemDataBound 事件

protected void dataListOrder_ItemDataBound(object sender, DataListItemEventArgs e)
        {
            if(e.Item.ItemType==ListItemType.Item)
            {

                Label date = e.Item.FindControl("lblOrderDate") as Label;
                string[] datesplit = date.Text.Split(' ');
                string time =string.Concat(datesplit[1]+" "+datesplit[2]);
                date.Text = time.ToString();

                int order_ID = Convert.ToInt32((e.Item.FindControl("orderid") as HiddenField).Value);
                GridView innerDataList = e.Item.FindControl("datalistOrderDetails") as GridView;
                string cs = ConfigurationManager.ConnectionStrings["SqlConnection"].ConnectionString;
                using (SqlConnection con = new SqlConnection(cs))
                {
                    DataTable orderDetailDT = new DataTable();
                    con.Open();
                    string orderDetail = "select ItemName,Quantity from Order_Details where Order_ID=" + order_ID + "";
                    SqlCommand cmd = new SqlCommand(orderDetail, con);
                    cmd.CommandType = CommandType.Text;
                    SqlDataAdapter orderDetailDA = new SqlDataAdapter(cmd);
                    orderDetailDA.Fill(orderDetailDT);
                    innerDataList.DataSource = orderDetailDT;
                    innerDataList.DataBind();

                }




            }
        }

注意:我也尝试在 aspx 文件中使用字符串格式来实现我想要的时间格式,但它不起作用

<asp:Label ID="lblOrderDate" runat="server" Text='<%#Eval("OrderDate","{0:t}") %>'.

请指导我代码中的问题为什么它只以奇数显示数据。谢谢你

【问题讨论】:

  • 对于 ASPX 中指定的“不起作用”的时间格式,您的意思是它只适用于奇数行号,对吧?您是否尝试过删除内部网格(以及填充它的代码隐藏)以隔离 OrderDate 格式问题?首先解决这个问题可能会让你知道出了什么问题。
  • 是的时间格式不起作用,因为我以这种字符串格式 "DateTIme.Now.toString("g")" 存储了该日期时间(即 2015 年 10 月 21 日上午 1:48)我认为就是这样为什么 {0:t} 不起作用。因此,我更改了 onitemdatabound 上的时间格式,但它仅适用于奇数,嵌套网格也仅填充奇数数据..
  • @ConnorsFan 我删除了内部网格,然后尝试但我仍然得到了奇怪的时间。如果(e.Item.ItemType==ListItemType.Item),这一行是否正确。当我调试它显示所有记录但更改适用于奇数。请帮忙
  • 我为您的上一个问题添加了官方答案。你的最后一句话暗示了这个答案。如果它解决了你的问题,我可以说你几乎是自己做的。 :-)
  • 非常感谢您的帮助。 :) 它现在可以工作了 :)

标签: c# asp.net


【解决方案1】:

你可能需要改变你的条件

if (e.Item.ItemType==ListItemType.Item)

if (e.Item.ItemType==ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-16
    • 2010-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多