Google Analytics İzleme

22 Şubat 2012

Sharepoint - Invalid field name. {00000000-0000-0000-0000-000000000000} hatası

Sharepoint'de External List'deki Item'ın field bilgisine guid ile erişmek istediğimizde bu hatayı vermektedir.
guid bilgisi ile değil de field'ın title bilgisi ile değerine erişebiliyoruz.



SPList currentList = currentSPWeb.Lists[listGUID];
SPView currentView = currentList.Views[viewGUID];
SPListItemCollection oItemCol = currentList.GetItems(currentView);
SPViewFieldCollection collViewFields = currentView.ViewFields;
StringCollection stringCol = currentView.ViewFields.ToStringCollection();


int row = 1;
                int column = 0;

                foreach (String viewField in stringCol)
                {
                    SPField field = currentList.Fields.GetField(viewField);
                    column++;
                   
                    excelWorksheet.Cells[row, column].Value = field.Title;
                }

                int rowData = 1;
                int columData = 1;

                foreach (SPListItem item in oItemCol)
                {
                    rowData++;
                    foreach (String viewField in stringCol)
                    {
                        SPField field = currentList.Fields.GetField(viewField);
                        if (item[field.Title] == null)
                        {
                            excelWorksheet.Cells[rowData, columData].Value = "";
                        }
                        else
                        {
                            // ishak.kulekci 22.02.2012
                            // external list'de field'leri guid bilgileri {00000000-0000-0000-0000-000000000000} şeklinde oluyor, bundan dolayı guid üzerinden alınınca hata vermektedir.
                            excelWorksheet.Cells[rowData, columData].Value = item[field.Title]; //item[field.Id];
                        }

                        //if (field.FieldValueType.BaseType == typeof(System.DateTime))
                        //{
                        //    worksheet.Cell(rowData, columData).Style.DateFormat.Format = "yyyy-MM-dd";
                        //}

                        columData++;
                    }
                   
                    columData = 1;
                }




Hiç yorum yok: