如何在gridview中限制文本框模板字段文本长度?

时间:2012-02-02 03:46:27

标签: c# asp.net

            <asp:GridView ID="CommentGrid" GridLines="None" runat="server" AutoGenerateColumns="False">
            <Columns>
                <asp:BoundField HeaderText="No." DataField="Num" >
                    <HeaderStyle HorizontalAlign="Left" />
                </asp:BoundField>
                <asp:BoundField HeaderText="Subject Name" DataField="SubjectName">
                    <HeaderStyle HorizontalAlign="Left" />
                </asp:BoundField>
                <asp:TemplateField HeaderText="Comment">
                    <ItemTemplate>
                        <asp:TextBox ID="CommentBox" runat="server" TextMode="MultiLine" CssClass="commentTbx" MaxLength="2"></asp:TextBox>
                    </ItemTemplate>
                    <HeaderStyle HorizontalAlign="Left" />
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
  

以上Maxlength =“2”不起作用!!我甚至尝试过像databound这样的其他方法,并使用foreach循环对其进行编码,但它仍然失败。

3 个答案:

答案 0 :(得分:1)

用户RegularExpressionValidator。以下内容接受最小字符0和最多2个字符。

  <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" 
        ControlToValidate="CommentBox" ErrorMessage="Out of Range Max 2 Chars" 
        ValidationExpression=".{0,2}"></asp:RegularExpressionValidator>

MaxLength不适用于MultiLine模式。

答案 1 :(得分:0)

您是否尝试过<EditItemTeplate>而不是<ItemTemplate>

答案 2 :(得分:0)

是的,这是因为TextMode="MultiLine"。你需要一些javascript来检查总字符数并施加限制。