Ошибка несоответствия столбцов в Gridview - Использование поля гиперссылки - PullRequest
1 голос
/ 28 ноября 2011

Я использовал gridview, чтобы динамически выбирать столбцы из списка. Списки также имеют поле вложения. Таким образом, у меня есть файл вложения url в переменной с именем attach.

Пример: attach = "http: //sok:1234/Lists/CapabilityTableSales/attachments/1/Dashboard Solutions.pptx"

Я использовал следующий код !!

private void PopulateGrid()
        {

           try
            {
                // List is Hard Coded here . we can also use current Context instead//
                string SiteListURL = "http://sok:1234/Lists/Case%20Studies/";


                using (SPSite oSiteCollection = new SPSite(SiteListURL))
                {
                    using (SPWeb web = oSiteCollection.OpenWeb())
                    {

                        DataTable dt = new DataTable();
                        SPQuery query = new SPQuery();
                        query.Query = "";

                        if (txt_Search.Text != String.Empty)
                        {
                            txt_Search.Text = "Key1";
                            query.Query = @"<Where><Contains><FieldRef Name='Key%20words' /><Value Type='Text'>" + txt_Search.Text + "</Value></Contains></Where>";
                        }

                        query.ViewFields = String.Concat(
                            "<FieldRef Name='Title' />",
                            "<FieldRef Name='Key%20words' />",
                            "<FieldRef Name='Project%20Brief' />",
                            "<FieldRef Name='Execution%20Highlights' />");
                        query.ViewFieldsOnly = true;

                        SPList list = web.Lists["Case Studies"];
                        SPListItemCollection col = list.GetItems(query);
                        dt = web.Lists["Case Studies"].GetItems(query).GetDataTable();
                        dt.Columns.Add(new DataColumn("Attachment", typeof(HyperLink)));
                        foreach (DataRow drow in dt.Rows)
                        {
                            drow["Attachment"] = getURL(drow["Title"].ToString());
                            //Where the function getURL will return the attachment URL!! (Working Fine)
                        }

                        GridView1.DataSource = dt;
                        GridView1.DataBind();
                    }
                }
           }
            catch (Exception ex)
            {
                //throw ex;
            }

        }

Как получить ошибку несоответствия столбцов для строки drow["Attachment"] = getURL(drow["Title"].ToString());

Мое требование - открыть файл (PPT) по щелчку этого URL.

Большое спасибо !!

1 Ответ

1 голос
/ 28 ноября 2011

Звучит как несоответствие типов данных.Я полагаю, ваш getResult возвращает что-то отличное от type: HyperLink, чего ожидает ваша строка данных.

...