如何将子字符串绑定到gridview和

时间:2013-06-27 10:07:42

标签: asp.net gridview selectedindexchanged rowdatabound rowcommand

我正在使用gridview来显示我的db表数据。但是有一个名为“描述”的列,包含1000个字符。我不希望将整个字符串绑定到gridview中。我如何将仅前100个字符绑定到gridview 列???

当我点击选择按钮时,我想要选择弹出窗口以及所选列详细信息。此时我想显示描述列的所有字符

我有已经创建的弹出窗口和其他东西。但我仍然无法得到“描述栏”的前100个字母并将其绑定到gridview中。我怎样才能做到这一点 ?我如何将整个字符串放入弹出窗口?

所有答案都很欢迎..请帮助我。

谢谢你

2 个答案:

答案 0 :(得分:0)

如果您有一个绑定到gridview的实体,则可以执行以下操作:

首先,添加一个新属性:

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

然后你可以将它绑定到gridview:

<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) + "...";
        }
    }
}

答案 1 :(得分:0)

我自己找到解决方案

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);
                }


            }
        }