2012-04-05 77 views
0

我有一些問題,只得到一個日期在我的表顯示..試圖切斷時間,日期時間

我得到了前一個問題的一些幫助,但遇到了另一個問題。這些是我們已經添加的東西:

((BoundField)gvEmployeeReview.Columns[1]).DataFormatString = "{0:d}"; //date hired column 
((BoundField)gvEmployeeReview.Columns[8]).DataFormatString = "{0:d}"; //next review column 

這裏是aspx頁面http://pastebin.com/DnH3wcAG
,這裏是代碼隱藏頁http://pastebin.com/yY2nbbEG
當我運行它,我得到:

「索引超出範圍必須爲非負數且小於集合的大小

參數名稱:index
描述:未處理的exc在執行當前Web請求期間發生了eption。請查看堆棧跟蹤以獲取有關該錯誤的更多信息以及源代碼的位置。

異常詳細信息:System.ArgumentOutOfRangeException:索引超出範圍。必須是非負數且小於集合的大小。
參數名稱:索引「和它在這一行」第158行:((BoundField)gvEmployeeReview.Columns [1])。DataFormatString =「{0:d}」; //日期聘請列」

任何幫助,試圖解決這一問題將是太棒了。作爲例外說,你所訪問的集合,是一個成員,我還沒有任何運氣

回答

0

我只是重新編寫了頁面,並在gridview中構建了表格,而不是在代碼中構建它......最後它變得更簡單了..需要更改一些代碼......但它全部轉向出了好..感謝所有的輸入

3

可能gvEmployeeReview.Columns[1]不存在gvEmployeeReview.Columns有多少個成員?

+0

**答案**或另一個問題? :D – 2012-04-05 15:29:01

+0

好,根據統計..我沒有收集..但我不明白我怎麼可以有數據顯示..它不在收集..我可能做錯了什麼..但是不知道什麼 – 2012-04-05 15:45:28

3

這與日期格式無關,可能是在嘗試訪問列時發生錯誤注意列索引是基於零的。如果您有N列,索引範圍從0N-1。嘗試使用索引[0][7],而不是[1][8]

((BoundField)gvEmployeeReview.Columns[0]).DataFormatString = "{0:d}"; 
((BoundField)gvEmployeeReview.Columns[7]).DataFormatString = "{0:d}"; 

這就產生了我不是一個網絡專家列

gvEmployeeReview.Columns.Count 

UPDATE

的實際數量; hovever,我只是用GridView做了一個測試,我馬上得到了日期格式。我使用這樣的對象數據源:

  1. 創建一個具有所需屬性的類。添加靜態方法返回一些真實或樣本數據

    public class Model 
    { 
        public int ID { get; set; } 
        public DateTime BeginDate { get; set; } 
        public DateTime EndDate { get; set; } 
        public string Name { get; set; } 
    
        public static List<Model> GetModels() 
        { 
         return new List<Model> { 
          new Model{ BeginDate=DateTime.Now, 
             EndDate=DateTime.Now.AddDays(1), ID=1, Name="test"}, 
          new Model{ BeginDate=DateTime.Now.AddDays(10), 
             EndDate=DateTime.Now.AddDays(12), ID=1, Name="test 2"} 
         }; 
        } 
    } 
    
  2. 在頁面上放置一個GridView一個List<T>,並與小[>]點擊連接到GridView的右上角打開任務窗口。

  3. Choose Data Source...選擇<New data source...>

  4. 在打開的Data Source Configuration Wizard窗口中,選擇Object,然後單擊OK。然後選擇Model類作爲業務對象,然後單擊Next >。最後在SELECT標籤上選擇GetModels,然後單擊完成。

  5. 在點4的最後一步之後,打開一個對話窗口,其中問號爲"Refresh Fields and Keys for 'GridView1'"。 Klick是的。設計師自動爲選定類的每個屬性添加列並顯示一些示例數據。

  6. 現在,再次點擊[>]並選擇Edit Columns...。在左下方的列表中選擇一個日期列。您會在Data部分的屬性窗口中找到DataFormatString屬性。在這裏你可以輸入{0:d}

+0

好按照計數..我沒有收集..但我不明白我怎麼可以有數據顯示..它不在收集..我可能做錯了什麼..但不知道是什麼 – 2012-04-05 15:44:55

+0

如果您嘗試設置格式字符串BEFORE,那麼將數據添加到具有AutoGenerateColumns屬性集的'GridView'中,那麼它將不會有列! – 2012-04-05 16:10:33

+0

我設置自動生成爲false ..但隨後我的整個表消失..tried格式化字符串..still去錯誤..但是,當我採取格式化字符串和autogen = false out..table工作正常...減去出現 – 2012-04-05 16:40:53

0

看看你的收藏數據源,試圖讀取一些不存在的東西。想想這樣:你有三個桶。現在我問你第四桶裏有什麼?這個錯誤是你告訴我我沒有第四桶。

+1

yea ..我明白錯誤的含義。 。不知道爲什麼我得到它。我也很確定鴨子是在第四桶 – 2012-04-05 15:47:37