如何在网格视图中验证asp.net文本框

时间:2015-02-26 01:01:58

标签: javascript c# asp.net validation

我正在尝试验证网格视图中的asp文本框,但我的挑战是我的aspx页面中有3个项目模板,

ID
Question
Answer

我想在“答案”字段中进行一些验证,用户必须根据ID输入特定答案。如果ID = 1,那么他们只能输入1到99之间的年龄数。如果ID = 2,那么他们只能输入一些类型的高度值,如5.3,5.8等。这是我当前网格视图的样子

<asp:GridView ID="GV_Test" runat="server"  
                    AutoGenerateColumns="False"
                    ShowFooter="True" DataKeyNames="ID">
                    <Columns>

                        <asp:TemplateField  HeaderText="Question ID" Visible="true">
                            <ItemTemplate>
                                <asp:Label ID="lblQST_SK" runat="server" Text='<%# Eval("ID")%>'></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateField>


                        <asp:TemplateField ItemStyle-Width="150px" HeaderText="Questions">
                            <ItemTemplate>
                                <asp:Label ID="lblQuestions" runat="server" Text='<%# Eval("Question")%>'></asp:Label>
                            </ItemTemplate>                                
                        </asp:TemplateField>

                        <asp:TemplateField HeaderText="Answer">                              
                                <ItemTemplate>                               
                                  <asp:TextBox ID="txtAn" runat="server" CssClass="form-control" Text='<%# Eval("Answer")%>' ></asp:TextBox>
                            </ItemTemplate>
                        </asp:TemplateField>

                    </Columns>

                </asp:GridView>

我该如何解决这个问题?感谢

1 个答案:

答案 0 :(得分:0)

您可以将onkeypress添加到您的itemtemplate中,如下所示:

<asp:TextBox ID="txtAn" runat="server" CssClass="form-control" Text='<%# Eval("Answer")%>' onkeypress='<%#"DecideHowToValidateThisID("+ Eval("Id") +");"%>' ></asp:TextBox>

编写一个javascript函数"DecideHowToValidateThisID(id)",根据您获得的ID作为输入,您可以决定如何验证该文本框。

如果您拥有一小组预定义ID以及如何验证

,则此方法有效

最好的方法是为你的网格设置一个itemdatabound事件 - 找出要完成的验证并将其添加到你的行

Check out this link for an example