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}") %>'.
請指引我在代碼爲什麼這個問題其唯一的數據顯示在奇數號。三江源
對於ASPX規定:「沒有工作」,你的意思是時間格式,它只能在奇數行號,對嗎?您是否嘗試刪除內部網格(以及填充它的代碼隱藏)以隔離OrderDate格式問題?首先解決這個問題可能會讓你知道發生了什麼問題。 – ConnorsFan
是的時間格式不工作,因爲我存儲該日期時間在這種字符串格式「DateTIme.Now.toString(」g「)」(即10/21/2015 1:48 AM)我認爲這就是爲什麼{0:t}是不工作。因此,我改變onitemdatabound的時間格式,但其唯一的作品在奇數和嵌套網格上也只填寫奇數據。 – Farrukh
@ConnorsFan我刪除內部網格,然後嘗試,但我仍然得到奇怪的時間。 這行是正確的if(e.Item.ItemType == ListItemType.Item)。當我調試它顯示所有記錄,但更改適用於奇數。請幫忙 – Farrukh