2015-03-03 79 views
1

嗨,我是新来的JavaScript和c#。 纠正我,如果我错了任何地方。我的gridview代码。启用或禁用基于比较gridview中c的文本框值的按钮#

 <asp:GridView ID="GridView1" CssClass="table table-hover table-bordered" runat="server" AutoGenerateColumns="False" ShowFooter="True" CellPadding="4" ForeColor="#333333" GridLines="None" OnRowCommand="GridView1_RowCommand"> 
     <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> 
     <Columns> 
      <asp:BoundField DataField="AvlQty" HeaderText="Available" ItemStyle-Width="35" > 
<ItemStyle Width="35px"></ItemStyle> 
      </asp:BoundField> 


<asp:TemplateField HeaderText="Qty" ItemStyle-Width="70"> 
       <ItemTemplate>     
        <asp:TextBox ID="TextBoxQty" onkeyup="Calculation(this)" CssClass="txtQty" runat="server" Text='<%# Eval("SelQty") %>' MaxLength="5" Width="45"></asp:TextBox> 
        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="TextBoxQty" Display="Dynamic" ForeColor="Red" ErrorMessage="RequiredFieldValidator">*</asp:RequiredFieldValidator> 
       <asp:regularexpressionvalidator ID="revAvailablePeriod" runat="server" ErrorMessage="Must > 0" ForeColor="Red" controltovalidate="TextBoxQty" validationexpression="^[1-9][0-9]*(\.[0-9]+)?|0+\.[0-9]*[1-9][0-9]*$" setfocusonerror="true" validationgroup="AddAssests" xmlns:asp="#unknown"></asp:regularexpressionvalidator> 
       <asp:CompareValidator ID="CompareValidator1" runat="server" ValueToCompare='<%# Eval("AvlQty") %>' ControlToValidate="TextBoxQty" ForeColor="Red" 
ErrorMessage="Must < Available" Operator="LessThan" Type="Integer"></asp:CompareValidator> 

       </ItemTemplate> 

<ItemStyle Width="70px"></ItemStyle> 
      </asp:TemplateField> 
</Columns> 
</asp:GridView> 

<asp:Button ID="Button2" runat="server" Enabled="false" Text="Place Order >>" CssClass="btn btn-info" OnClick="Button2_Click" /> 

现在,如果数量比为gridview每一行可用数量,比按钮应禁用其他按钮应启用更大。

我想实现这个使用JavaScript函数。 任何人都可以帮助我吗?

我写了这个功能,但不知道什么时候打电话,如何调用.. 这是我到目前为止已经做了..

function Calculation() 
{ 
    var grid = document.getElementById("<%= GridView1.ClientID%>"); 
     var counter = 0; 
     for (var i = 1; i < grid.rows.length ; i++) { 
      var txtAvl = grid.rows[i].cells[3]; 

      var qty = grid.rows[i].cells[5]; 
      if (txtAvl.value >= qty.value && qty.value > 0) 
      { counter++; } 
      else 
      { document.getElementById('Button2').disabled = true; } 

     } 
     if (counter == grid.rows.length) 
      document.getElementById('Button2').disabled = false; 

} 
+0

将您的代码作为更新发布在问题中。 – 2015-03-03 14:17:08

+0

我按照你的要求添加了JavaScript函数代码@DylanCorriveau .. – 2015-03-03 14:23:43

回答

1

onkeyup功能就足以把这个javascript验证。我稍微改变了你的脚本和它的工作。

<script type="text/javascript"> 
     function Calculation() { 
      var grid = document.getElementById('GridView1'); 
      var counter = 0; 

      for (var i = 1; i < grid.rows.length; i++) { 

       var txtQty = document.getElementById('GridView1_ctl0' + (i + 1) + '_TextBoxQty'); //TextBox control 

       if (txtQty != undefined) { 

        var qty = txtQty.value; 
        var txtAvl = grid.rows[i].cells[0].innerHTML; 

        if (txtAvl >= qty && qty > 0) { 
         counter++; 
        } 
        else { 
         document.getElementById('Button2').disabled = true; 
         break; 
        } 
       } 
      } 
      if (counter == grid.rows.length - 2) 
       document.getElementById('Button2').disabled = false; 
     } 
    </script> 

你必须把对GridviewTextBox相应正确的ID进行更新。希望这可以帮助。

+0

..我试过了,你说了什么,但是脚本中的函数没有工作,我在文本框中调用了函数funciton 2015-03-04 11:52:33

+0

@RajParekh你有没有改变你的HTML中的GridView ID和TextBox ID? – 2015-03-04 11:54:12

+0

ya @Selva TS,我将它改为GridView1和TextBoxQty。 – 2015-03-04 11:57:27

相关问题