2015-10-20 25 views
0

我有一個數據列表,其中有一個標籤,顯示日期時間並在數據列表中有一個網格。問題是我得到時間的期望格式(例如1 :48 AM)以及網格內的數據僅在奇數記錄中例如1 3 5 7記錄是正確的並且2 4 6 7顯示網格中的空記錄並且標籤也顯示不正確的格式(10/21/2015 1:48:20 AM)。這是代碼。 onitemDataBound事件獲取datalist中奇數的記錄的正確數據

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}") %>'. 

請指引我在代碼爲什麼這個問題其唯一的數據顯示在奇數號。三江源

+0

對於ASPX規定:「沒有工作」,你的意思是時間格式,它只能在奇數行號,對嗎?您是否嘗試刪除內部網格(以及填充它的代碼隱藏)以隔離OrderDate格式問題?首先解決這個問題可能會讓你知道發生了什麼問題。 – ConnorsFan

+0

是的時間格式不工作,因爲我存儲該日期時間在這種字符串格式「DateTIme.Now.toString(」g「)」(即10/21/2015 1:48 AM)我認爲這就是爲什麼{0:t}是不工作。因此,我改變onitemdatabound的時間格式,但其唯一的作品在奇數和嵌套網格上也只填寫奇數據。 – Farrukh

+0

@ConnorsFan我刪除內部網格,然後嘗試,但我仍然得到奇怪的時間。 這行是正確的if(e.Item.ItemType == ListItemType.Item)。當我調試它顯示所有記錄,但更改適用於奇數。請幫忙 – Farrukh

回答

0

您可能必須從

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

改變你的條件

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