繁体   English   中英

ASP.Net使用JavaScript验证GridView控件

[英]ASP.Net Validating GridView controls using JavaScript

我有在编辑模式下加载的GridView。 然后,用户可以更新一行并单击该行的更新按钮以对其进行更新。 我需要向每个文本框添加验证,以使其在单击更新按钮时将该文本框作为必填字段。 它必须是JavaScript,因为当用户将其中一个文本框留为空白时,我需要加载警报对话框。 谁能告诉我如何做到这一点? 我在下面添加我的GridView代码。

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="ObjectDataSource1" DataKeyNames="intExaminerID,sintDOLDistrictOfficeID">
        <Columns>            
            <asp:TemplateField>                
                <ItemTemplate>                 
                    <asp:TextBox ID="txtID" Visible="false" runat="server" Text='<%# Bind("intExaminerID") %>'></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:TextBox ID="txtDOID"  Visible="false" runat="server" Text='<%# Bind("sintDOLDistrictOfficeID") %>'></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="First Name">                
                <ItemTemplate>
                    <asp:TextBox ID="txtFName" Visible='<%# IsInEditMode %>' runat="server" Text='<%# Bind("vcharFirstName") %>'></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateField>  
            <asp:TemplateField HeaderText="Last Name">
                <ItemTemplate>
                    <asp:TextBox ID="txtLName" Visible='<%# IsInEditMode %>' runat="server" Text='<%# Bind("vcharLastName") %>'></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateField>  
            <asp:TemplateField HeaderText="Email">
                <ItemTemplate>
                    <asp:TextBox ID="txtEmail" Visible='<%# IsInEditMode %>' runat="server" Text='<%# Bind("vcharEmailAddress") %>'></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateField> 
            <asp:TemplateField HeaderText="Extension">
                <ItemTemplate>
                    <asp:TextBox ID="txtPhone" Visible='<%# IsInEditMode %>' runat="server" Text='<%# Bind("vcharPhoneExtension") %>'></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="SSN Block">
                <ItemTemplate>
                    <asp:TextBox ID="txtSSNStart" Visible='<%# IsInEditMode %>' runat="server" Text='<%# Bind("vcharSSNBlockStart") %>' Width="5em"></asp:TextBox>
                    <asp:TextBox ID="txtSSNEnd" Visible='<%# IsInEditMode %>' runat="server" Text='<%# Bind("vcharSSNBlockEnd") %>' Width="5em"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateField> 
            <asp:TemplateField HeaderText="Action(s)">
                <ItemTemplate>
                    <asp:Button ID="btnUpdate" runat="server" Text="Update" CommandName="Update" OnClientClick="javascript:return Validategrid();" CommandArgument='<%# Container.DataItemIndex %>' />                    
                    <asp:Button ID="btnDelete" runat="server" Text="Delete" CommandName="Delete" CommandArgument='<%# Container.DataItemIndex %>' />
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>

我仍在处理查询的JavaScript方面,但让我们先设置gridview来验证必填字段:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="ObjectDataSource1" DataKeyNames="intExaminerID,sintDOLDistrictOfficeID">
    <Columns>            
        <asp:TemplateField>                
            <ItemTemplate>                 
                <asp:TextBox ID="txtID" ValidationGroup="GridView1" Visible="false" runat="server" Text='<%# Bind("intExaminerID") %>'></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:TextBox ID="txtDOID"  Visible="false" ValidationGroup="GridView1" runat="server" Text='<%# Bind("sintDOLDistrictOfficeID") %>'></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="First Name">                
            <ItemTemplate>
                <asp:TextBox ID="txtFName" ValidationGroup="GridView1" Visible='<%# IsInEditMode %>' runat="server" Text='<%# Bind("vcharFirstName") %>'></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>  
        <asp:TemplateField HeaderText="Last Name">
            <ItemTemplate>
                <asp:TextBox ID="txtLName" ValidationGroup="GridView1" Visible='<%# IsInEditMode %>' runat="server" Text='<%# Bind("vcharLastName") %>'></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>  
        <asp:TemplateField HeaderText="Email">
            <ItemTemplate>
                <asp:TextBox ID="txtEmail" ValidationGroup="GridView1" Visible='<%# IsInEditMode %>' runat="server" Text='<%# Bind("vcharEmailAddress") %>'></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField> 
        <asp:TemplateField HeaderText="Extension">
            <ItemTemplate>
                <asp:TextBox ID="txtPhone" ValidationGroup="GridView1" Visible='<%# IsInEditMode %>' runat="server" Text='<%# Bind("vcharPhoneExtension") %>'></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="SSN Block">
            <ItemTemplate>
                <asp:TextBox ID="txtSSNStart" ValidationGroup="GridView1" Visible='<%# IsInEditMode %>' runat="server" Text='<%# Bind("vcharSSNBlockStart") %>' Width="5em"></asp:TextBox>
                <asp:TextBox ID="txtSSNEnd" Visible='<%# IsInEditMode %>' runat="server" Text='<%# Bind("vcharSSNBlockEnd") %>' Width="5em"></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField> 
        <asp:TemplateField HeaderText="Action(s)">
            <ItemTemplate>
                <asp:Button ID="btnUpdate" ValidationGroup='GridView1' CausesValidation='true' runat="server" Text="Update" CommandName="Update" OnClientClick="javascript:return Validategrid();" CommandArgument='<%# Container.DataItemIndex %>' />                    
                <asp:Button ID="btnDelete" runat="server" Text="Delete" CommandName="Delete" CommandArgument='<%# Container.DataItemIndex %>' />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

我在这里所做的添加了

ValidationGroup='GridView1' 

到每个文本框字段以及“更新”按钮

ValidationGroup='GridView1' CausesValidation='true'

ValidationGroups将有助于在单击“更新”按钮时触发验证。

编写JavaScript后,我将更新响应。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM