Javascript 在特定条件下禁用gridview中的文本框

Javascript 在特定条件下禁用gridview中的文本框,javascript,asp.net,c#-4.0,Javascript,Asp.net,C# 4.0,我的gridview中有文本框列。我想在某些情况下禁用我的文本框,例如 当在文本框中输入的值为2000时,其他行上的“2000/500=4”文本框将被禁用,它应该是特定值的倍数 <asp:TemplateField HeaderText="Installment No."> <ItemTemplate> <asp:Labe

我的gridview中有文本框列。我想在某些情况下禁用我的文本框,例如 当在文本框中输入的值为2000时,其他行上的“2000/500=4”文本框将被禁用,它应该是特定值的倍数

                     <asp:TemplateField HeaderText="Installment No.">
                        <ItemTemplate>
                            <asp:Label ID="LblInstl" runat="server" Text='<%#Eval("InstallmentNo") %>' Font-Bold="True"></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Due Date">
                        <ItemTemplate>
                            <asp:Label ID="LbldueDate" runat="server" Text='<%#Eval("DueDate") %>' Font-Bold="True" ></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Deposit Date">
                        <ItemTemplate>
                            <asp:TextBox runat="server" Text='<%#Eval("Datedeposit") %>'  Enabled='<%# (string) Eval("Datedeposit") == "" %>'  ID="TxtdepositDate" Width="200px"></asp:TextBox>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Amount">
                        <ItemTemplate>
                            <asp:TextBox ID="TxtAmount" runat="server" Text='<%#Eval("Amount") %>' Enabled='<%# (string) Eval("Amount") == "" %>' Width="200px"></asp:TextBox>
                            <asp:HiddenField runat="server" ID="Hdn" Value='<%#Eval("InstallmentAmount") %>'/>
                        </ItemTemplate>
                    </asp:TemplateField>


                </Columns>
                </asp:GridView>
我不知道应该在
gridview
中触发哪个事件,或者使用
javascript
来处理
textboxchange事件

                     <asp:TemplateField HeaderText="Installment No.">
                        <ItemTemplate>
                            <asp:Label ID="LblInstl" runat="server" Text='<%#Eval("InstallmentNo") %>' Font-Bold="True"></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Due Date">
                        <ItemTemplate>
                            <asp:Label ID="LbldueDate" runat="server" Text='<%#Eval("DueDate") %>' Font-Bold="True" ></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Deposit Date">
                        <ItemTemplate>
                            <asp:TextBox runat="server" Text='<%#Eval("Datedeposit") %>'  Enabled='<%# (string) Eval("Datedeposit") == "" %>'  ID="TxtdepositDate" Width="200px"></asp:TextBox>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Amount">
                        <ItemTemplate>
                            <asp:TextBox ID="TxtAmount" runat="server" Text='<%#Eval("Amount") %>' Enabled='<%# (string) Eval("Amount") == "" %>' Width="200px"></asp:TextBox>
                            <asp:HiddenField runat="server" ID="Hdn" Value='<%#Eval("InstallmentAmount") %>'/>
                        </ItemTemplate>
                    </asp:TemplateField>


                </Columns>
                </asp:GridView>
这是我的网格视图代码.aspx

                     <asp:TemplateField HeaderText="Installment No.">
                        <ItemTemplate>
                            <asp:Label ID="LblInstl" runat="server" Text='<%#Eval("InstallmentNo") %>' Font-Bold="True"></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Due Date">
                        <ItemTemplate>
                            <asp:Label ID="LbldueDate" runat="server" Text='<%#Eval("DueDate") %>' Font-Bold="True" ></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Deposit Date">
                        <ItemTemplate>
                            <asp:TextBox runat="server" Text='<%#Eval("Datedeposit") %>'  Enabled='<%# (string) Eval("Datedeposit") == "" %>'  ID="TxtdepositDate" Width="200px"></asp:TextBox>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Amount">
                        <ItemTemplate>
                            <asp:TextBox ID="TxtAmount" runat="server" Text='<%#Eval("Amount") %>' Enabled='<%# (string) Eval("Amount") == "" %>' Width="200px"></asp:TextBox>
                            <asp:HiddenField runat="server" ID="Hdn" Value='<%#Eval("InstallmentAmount") %>'/>
                        </ItemTemplate>
                    </asp:TemplateField>


                </Columns>
                </asp:GridView>

                     <asp:TemplateField HeaderText="Installment No.">
                        <ItemTemplate>
                            <asp:Label ID="LblInstl" runat="server" Text='<%#Eval("InstallmentNo") %>' Font-Bold="True"></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Due Date">
                        <ItemTemplate>
                            <asp:Label ID="LbldueDate" runat="server" Text='<%#Eval("DueDate") %>' Font-Bold="True" ></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Deposit Date">
                        <ItemTemplate>
                            <asp:TextBox runat="server" Text='<%#Eval("Datedeposit") %>'  Enabled='<%# (string) Eval("Datedeposit") == "" %>'  ID="TxtdepositDate" Width="200px"></asp:TextBox>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Amount">
                        <ItemTemplate>
                            <asp:TextBox ID="TxtAmount" runat="server" Text='<%#Eval("Amount") %>' Enabled='<%# (string) Eval("Amount") == "" %>' Width="200px"></asp:TextBox>
                            <asp:HiddenField runat="server" ID="Hdn" Value='<%#Eval("InstallmentAmount") %>'/>
                        </ItemTemplate>
                    </asp:TemplateField>


                </Columns>
                </asp:GridView>


如果用户在文本amount中输入的金额大于500,则我希望禁用gridview行的下3个文本框。

这包括两部分

                     <asp:TemplateField HeaderText="Installment No.">
                        <ItemTemplate>
                            <asp:Label ID="LblInstl" runat="server" Text='<%#Eval("InstallmentNo") %>' Font-Bold="True"></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Due Date">
                        <ItemTemplate>
                            <asp:Label ID="LbldueDate" runat="server" Text='<%#Eval("DueDate") %>' Font-Bold="True" ></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Deposit Date">
                        <ItemTemplate>
                            <asp:TextBox runat="server" Text='<%#Eval("Datedeposit") %>'  Enabled='<%# (string) Eval("Datedeposit") == "" %>'  ID="TxtdepositDate" Width="200px"></asp:TextBox>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Amount">
                        <ItemTemplate>
                            <asp:TextBox ID="TxtAmount" runat="server" Text='<%#Eval("Amount") %>' Enabled='<%# (string) Eval("Amount") == "" %>' Width="200px"></asp:TextBox>
                            <asp:HiddenField runat="server" ID="Hdn" Value='<%#Eval("InstallmentAmount") %>'/>
                        </ItemTemplate>
                    </asp:TemplateField>


                </Columns>
                </asp:GridView>
第1部分运行时

                     <asp:TemplateField HeaderText="Installment No.">
                        <ItemTemplate>
                            <asp:Label ID="LblInstl" runat="server" Text='<%#Eval("InstallmentNo") %>' Font-Bold="True"></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Due Date">
                        <ItemTemplate>
                            <asp:Label ID="LbldueDate" runat="server" Text='<%#Eval("DueDate") %>' Font-Bold="True" ></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Deposit Date">
                        <ItemTemplate>
                            <asp:TextBox runat="server" Text='<%#Eval("Datedeposit") %>'  Enabled='<%# (string) Eval("Datedeposit") == "" %>'  ID="TxtdepositDate" Width="200px"></asp:TextBox>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Amount">
                        <ItemTemplate>
                            <asp:TextBox ID="TxtAmount" runat="server" Text='<%#Eval("Amount") %>' Enabled='<%# (string) Eval("Amount") == "" %>' Width="200px"></asp:TextBox>
                            <asp:HiddenField runat="server" ID="Hdn" Value='<%#Eval("InstallmentAmount") %>'/>
                        </ItemTemplate>
                    </asp:TemplateField>


                </Columns>
                </asp:GridView>
您应该查看
RowDataBound
事件:

                     <asp:TemplateField HeaderText="Installment No.">
                        <ItemTemplate>
                            <asp:Label ID="LblInstl" runat="server" Text='<%#Eval("InstallmentNo") %>' Font-Bold="True"></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Due Date">
                        <ItemTemplate>
                            <asp:Label ID="LbldueDate" runat="server" Text='<%#Eval("DueDate") %>' Font-Bold="True" ></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Deposit Date">
                        <ItemTemplate>
                            <asp:TextBox runat="server" Text='<%#Eval("Datedeposit") %>'  Enabled='<%# (string) Eval("Datedeposit") == "" %>'  ID="TxtdepositDate" Width="200px"></asp:TextBox>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Amount">
                        <ItemTemplate>
                            <asp:TextBox ID="TxtAmount" runat="server" Text='<%#Eval("Amount") %>' Enabled='<%# (string) Eval("Amount") == "" %>' Width="200px"></asp:TextBox>
                            <asp:HiddenField runat="server" ID="Hdn" Value='<%#Eval("InstallmentAmount") %>'/>
                        </ItemTemplate>
                    </asp:TemplateField>


                </Columns>
                </asp:GridView>
所以GridView的声明是

                     <asp:TemplateField HeaderText="Installment No.">
                        <ItemTemplate>
                            <asp:Label ID="LblInstl" runat="server" Text='<%#Eval("InstallmentNo") %>' Font-Bold="True"></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Due Date">
                        <ItemTemplate>
                            <asp:Label ID="LbldueDate" runat="server" Text='<%#Eval("DueDate") %>' Font-Bold="True" ></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Deposit Date">
                        <ItemTemplate>
                            <asp:TextBox runat="server" Text='<%#Eval("Datedeposit") %>'  Enabled='<%# (string) Eval("Datedeposit") == "" %>'  ID="TxtdepositDate" Width="200px"></asp:TextBox>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Amount">
                        <ItemTemplate>
                            <asp:TextBox ID="TxtAmount" runat="server" Text='<%#Eval("Amount") %>' Enabled='<%# (string) Eval("Amount") == "" %>' Width="200px"></asp:TextBox>
                            <asp:HiddenField runat="server" ID="Hdn" Value='<%#Eval("InstallmentAmount") %>'/>
                        </ItemTemplate>
                    </asp:TemplateField>


                </Columns>
                </asp:GridView>
<asp:GridView id="grd" runat="server" OnRowDataBound="grd_RowDataBound">
第2部分客户端

                     <asp:TemplateField HeaderText="Installment No.">
                        <ItemTemplate>
                            <asp:Label ID="LblInstl" runat="server" Text='<%#Eval("InstallmentNo") %>' Font-Bold="True"></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Due Date">
                        <ItemTemplate>
                            <asp:Label ID="LbldueDate" runat="server" Text='<%#Eval("DueDate") %>' Font-Bold="True" ></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Deposit Date">
                        <ItemTemplate>
                            <asp:TextBox runat="server" Text='<%#Eval("Datedeposit") %>'  Enabled='<%# (string) Eval("Datedeposit") == "" %>'  ID="TxtdepositDate" Width="200px"></asp:TextBox>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Amount">
                        <ItemTemplate>
                            <asp:TextBox ID="TxtAmount" runat="server" Text='<%#Eval("Amount") %>' Enabled='<%# (string) Eval("Amount") == "" %>' Width="200px"></asp:TextBox>
                            <asp:HiddenField runat="server" ID="Hdn" Value='<%#Eval("InstallmentAmount") %>'/>
                        </ItemTemplate>
                    </asp:TemplateField>


                </Columns>
                </asp:GridView>
然后,我希望在客户端输入文本时使用jQuery禁用文本框:

                     <asp:TemplateField HeaderText="Installment No.">
                        <ItemTemplate>
                            <asp:Label ID="LblInstl" runat="server" Text='<%#Eval("InstallmentNo") %>' Font-Bold="True"></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Due Date">
                        <ItemTemplate>
                            <asp:Label ID="LbldueDate" runat="server" Text='<%#Eval("DueDate") %>' Font-Bold="True" ></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Deposit Date">
                        <ItemTemplate>
                            <asp:TextBox runat="server" Text='<%#Eval("Datedeposit") %>'  Enabled='<%# (string) Eval("Datedeposit") == "" %>'  ID="TxtdepositDate" Width="200px"></asp:TextBox>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Amount">
                        <ItemTemplate>
                            <asp:TextBox ID="TxtAmount" runat="server" Text='<%#Eval("Amount") %>' Enabled='<%# (string) Eval("Amount") == "" %>' Width="200px"></asp:TextBox>
                            <asp:HiddenField runat="server" ID="Hdn" Value='<%#Eval("InstallmentAmount") %>'/>
                        </ItemTemplate>
                    </asp:TemplateField>


                </Columns>
                </asp:GridView>
首先,向文本框添加一个类:

                     <asp:TemplateField HeaderText="Installment No.">
                        <ItemTemplate>
                            <asp:Label ID="LblInstl" runat="server" Text='<%#Eval("InstallmentNo") %>' Font-Bold="True"></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Due Date">
                        <ItemTemplate>
                            <asp:Label ID="LbldueDate" runat="server" Text='<%#Eval("DueDate") %>' Font-Bold="True" ></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Deposit Date">
                        <ItemTemplate>
                            <asp:TextBox runat="server" Text='<%#Eval("Datedeposit") %>'  Enabled='<%# (string) Eval("Datedeposit") == "" %>'  ID="TxtdepositDate" Width="200px"></asp:TextBox>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Amount">
                        <ItemTemplate>
                            <asp:TextBox ID="TxtAmount" runat="server" Text='<%#Eval("Amount") %>' Enabled='<%# (string) Eval("Amount") == "" %>' Width="200px"></asp:TextBox>
                            <asp:HiddenField runat="server" ID="Hdn" Value='<%#Eval("InstallmentAmount") %>'/>
                        </ItemTemplate>
                    </asp:TemplateField>


                </Columns>
                </asp:GridView>
<asp:TextBox runat="server" Text='<%#Eval("Datedeposit") %>'  Enabled='<%# (string) Eval("Datedeposit") == "" %>'  ID="TxtdepositDate" Width="200px" CssClass="watchedAmt"></asp:TextBox>
jQuery中的目标可能有点偏离,因为您需要根据网格布局进行定位,但它应该可以让您接近目标

                     <asp:TemplateField HeaderText="Installment No.">
                        <ItemTemplate>
                            <asp:Label ID="LblInstl" runat="server" Text='<%#Eval("InstallmentNo") %>' Font-Bold="True"></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Due Date">
                        <ItemTemplate>
                            <asp:Label ID="LbldueDate" runat="server" Text='<%#Eval("DueDate") %>' Font-Bold="True" ></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Deposit Date">
                        <ItemTemplate>
                            <asp:TextBox runat="server" Text='<%#Eval("Datedeposit") %>'  Enabled='<%# (string) Eval("Datedeposit") == "" %>'  ID="TxtdepositDate" Width="200px"></asp:TextBox>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Amount">
                        <ItemTemplate>
                            <asp:TextBox ID="TxtAmount" runat="server" Text='<%#Eval("Amount") %>' Enabled='<%# (string) Eval("Amount") == "" %>' Width="200px"></asp:TextBox>
                            <asp:HiddenField runat="server" ID="Hdn" Value='<%#Eval("InstallmentAmount") %>'/>
                        </ItemTemplate>
                    </asp:TemplateField>


                </Columns>
                </asp:GridView>

试一试。

你能给我看一些代码吗?我只写了我的gridview数据绑定代码。很难理解你问题的内容。也许发布一些图片/屏幕截图来描述你想要实现的目标。我有一个文本框栏和一个日期栏。当用户在文本框中输入值时,我必须基于禁用其他gridview文本框列。您必须发布标记以使其更简单。。。你希望这种情况发生在客户端吗?因此,不是网格中数据的条件,而是用户的输入?根据gridview中文本框上的用户输入,我想禁用其他gridview行。好的,您将不得不发布您的标记,以供任何人帮助。我想这需要是客户端。
                     <asp:TemplateField HeaderText="Installment No.">
                        <ItemTemplate>
                            <asp:Label ID="LblInstl" runat="server" Text='<%#Eval("InstallmentNo") %>' Font-Bold="True"></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Due Date">
                        <ItemTemplate>
                            <asp:Label ID="LbldueDate" runat="server" Text='<%#Eval("DueDate") %>' Font-Bold="True" ></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Deposit Date">
                        <ItemTemplate>
                            <asp:TextBox runat="server" Text='<%#Eval("Datedeposit") %>'  Enabled='<%# (string) Eval("Datedeposit") == "" %>'  ID="TxtdepositDate" Width="200px"></asp:TextBox>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Amount">
                        <ItemTemplate>
                            <asp:TextBox ID="TxtAmount" runat="server" Text='<%#Eval("Amount") %>' Enabled='<%# (string) Eval("Amount") == "" %>' Width="200px"></asp:TextBox>
                            <asp:HiddenField runat="server" ID="Hdn" Value='<%#Eval("InstallmentAmount") %>'/>
                        </ItemTemplate>
                    </asp:TemplateField>


                </Columns>
                </asp:GridView>