ASP Gridview MaxLength

时间:2013-01-29 20:10:11

标签: asp.net vb.net gridview boundfield

我有一个使用<asp:BoundField DataField="Comments" HeaderText="COMMENTS" />的网格视图,我想只在网格视图填充时显示Commemnt列中的前20个字符。有没有办法在VB中实现这一点?谢谢。

1 个答案:

答案 0 :(得分:1)

一种方法是在代码隐藏中使用RowDataBound事件:

Protected Sub Gridview1_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles Gridview1.RowDataBound
    Select Case e.Row.RowType
        Case DataControlRowType.DataRow
            ' assuming the comments column is the first column '
            If e.Row.Cells(0).Text.Length > 20 Then
                e.Row.Cells(0).Text = e.Row.Cells(0).Text.Substring(0, 20)
            End If
    End Select
End Sub

请注意,您只能使用BoundFields以这种方式访问​​文本。使用TemplateFields,您需要使用FindControl来获取控件的引用(例如,TextBox)。

如果你使用TemplateField,你也可以限制aspx标记上的文字:

<asp:TemplateField HeaderText="Commnents">
<ItemTemplate>
    <asp:TextBox ID="txtID"  
         MaxLength="20" runat="server" 
         Text='<%# DataBinder.Eval(Container.DataItem, "Comments") %>'>
    </asp:TextBox>
</ItemTemplate>
</asp:TemplateField>