C# 获取数据列表中奇数记录的正确数据

C# 获取数据列表中奇数记录的正确数据,c#,asp.net,C#,Asp.net,我有一个数据列表,其中有一个显示日期时间的标签,数据列表中有一个网格。问题是我得到了所需的时间格式(例如1:48 AM)网格内的数据仅显示奇数记录,例如1 3 5 7记录正确,2 4 6 7显示网格中的空记录,标签也显示不正确的格式(10/21/2015 1:48:20 AM)。这是代码。onitemDataBound事件 protected void dataListOrder_ItemDataBound(object sender, DataListItemEventArgs e)

我有一个数据列表,其中有一个显示日期时间的标签,数据列表中有一个网格。问题是我得到了所需的时间格式(例如1:48 AM)网格内的数据仅显示奇数记录,例如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}") %>'.

您可能必须从

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


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