как привязать подстроку к gridview и

Я использую gridview, чтобы показать данные таблицы БД. но есть столбец "Описание" с 1000 символов. Я не хочу связывать всю строку в gridview. Как привязать только первые 100 символов к столбцу gridview???

когда я нажимаю кнопку выбора, я хочу создать всплывающее окно с данными выбранного столбца. В этот момент я хочу показать все символы столбца описания.

У меня уже создано всплывающее окно и другие вещи. но все же я не мог получить первые 100 букв «столбца описания» и привязать его к сетке. Как я могу это сделать ? И как я могу получить всю строку во всплывающем окне?

ВСЕ ОТВЕТЫ ПРИВЕТСТВУЮТСЯ.. ПОЖАЛУЙСТА, ПОМОГИТЕ МНЕ.

СПАСИБО


person User Mora    schedule 27.06.2013    source источник
comment
Как вы привязываете свои данные к вашему gridview?   -  person Ben Gulapa    schedule 27.06.2013
comment
grdInquiry.DataBind(); grdInquiry - это имя gridview...   -  person User Mora    schedule 27.06.2013
comment
Итак, у вас, похоже, есть класс или модель Inquiry. Пожалуйста, посмотрите и попробуйте мой ответ.   -  person Ben Gulapa    schedule 27.06.2013
comment
Вы можете перейти по следующей ссылке stackoverflow.com/questions/ 11088633/ stackoverflow.com/ вопросы/7650791/   -  person शेखर    schedule 27.06.2013


Ответы (2)


Если у вас есть объект, который вы привязываете к вашему gridview, вы можете сделать это:

Сначала добавьте новое свойство:

[NotMapped]
public string CutDescription
{
    get
    {
        if (Description.Length <= 1000)
        {
            return Description;
        }
        return Description.Substring(0, 1000) + "...";
    }
}

Затем вы можете привязать это к своему сетке:

<asp:BoundField DataField="CutDescription" HeaderText="Description" />

Это всего лишь один из способов сделать это. Надеюсь, поможет.

РЕДАКТИРОВАТЬ: Другой способ использования события RowDatabound:

protected void Grid_RowDataBound(object sender, GridViewRowEventArgs e)
{
    var row = e.Row;
    if (row.RowType == DataControlRowType.DataRow)
    {
        // Just change the index of the cell 
        var description = row.Cells[1].Text;
        if (description.Length > 100)
        {
            row.Cells[1].Text = description.Substring(0, 100) + "...";
        }
    }
}
person Ben Gulapa    schedule 27.06.2013
comment
Я помещаю этот код в Protected void Grid_RowDataBound{}, но затем не могу вернуть значение... Как я могу решить эту проблему?? - person User Mora; 27.06.2013

Я сам люблю решение

100% рабочий и полностью протестирован

protected void grdName_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                if (e.Row.Cells[8].Text.Length > 100)
                {
                    e.Row.Cells[8].Text = e.Row.Cells[8].Text.Substring(0, 12);
                }


            }
        }
person User Mora    schedule 28.06.2013