2014-09-24 55 views
-3

在下面的代码中,我有网格视图,并有一些控件,其中我有数量文本框,如果我输入一个值,并离开文本框,它应该调用服务器端method.I尝试所有的值调用该方法时控件会被清除。请帮助我解决此问题。文本更改事件中的问题

<asp:GridView Width="100%" runat="server" ID="gvProduct" AutoGenerateColumns="false" CellPadding="4" ForeColor="#333333" ShowFooter="true" 
          PageSize-Mode="NumericPages" PageSize="10" PagerStyle-Visible="true" AllowPaging="true" AllowSorting="true"        
          > 

          <Columns>            

           <asp:TemplateField HeaderText="Product Name" ItemStyle-Width="350px"> 
            <ItemTemplate> 
             <asp:DropDownList ID="ddlProduct" runat="server" OnSelectedIndexChanged="ddlProduct_SelectedIndexChanged" AutoPostBack="true" Style="width: 100%; height:23px" ></asp:DropDownList>                    
            </ItemTemplate>         
           </asp:TemplateField> 

           <asp:TemplateField HeaderText="Current Stock" ItemStyle-Width="150px" > 
            <ItemTemplate> 
             <center> <asp:TextBox ID="txtCurrentStock" onkeypress="return isNumberKey(event, false);" Height="20px" runat="server" Width="160px" Enabled="false"> </asp:TextBox></center> 
            </ItemTemplate>          
           </asp:TemplateField> 


           <asp:TemplateField HeaderText="Quantity" ItemStyle-Width="150px"> 
            <ItemTemplate> 
             <asp:TextBox ID="txtQuantity" onkeypress="return isNumberKey(event, false);" AutoPostBack="true" runat="server" Height="20px" Width="150px" OnTextChanged="txtQuantity_TextChanged" > </asp:TextBox> 
            </ItemTemplate>         
           </asp:TemplateField> 

           <asp:TemplateField HeaderText="Unit Type" ItemStyle-Width="50px" > 
            <ItemTemplate> 

            <center> <asp:Label ID="lblunittype" runat="server" Width="50px" ></asp:Label></center> 
            </ItemTemplate>          
           </asp:TemplateField> 

           <asp:TemplateField HeaderText="Product Required Date" ItemStyle-Width="150px"> 
            <ItemTemplate> 

             <asp:TextBox ID="txtProductRequiredDate" style="text-align: left" onkeypress="return isNumberKey(event, false);" Height="20px" runat="server" Width="150px" > </asp:TextBox> 
             <asp:LinkButton ID="lnkDeliveryDate" runat="server" CommandName="DeliveryDate" >select</asp:LinkButton> 

            </ItemTemplate>         
           </asp:TemplateField> 



           <asp:TemplateField HeaderText="Remove" HeaderStyle-VerticalAlign="Top" ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Center" FooterStyle-HorizontalAlign="Center"> 
            <ItemTemplate> 

             <asp:LinkButton ID="lnkdelete" runat="server" CommandName="Delete" OnClientClick="return confirmDelete()" >Delete</asp:LinkButton> 
            </ItemTemplate> 
            <FooterTemplate>          
              <asp:Button ID="ButtonAdd" runat="server" OnClick="btnAdd_Click" class="button" Text="Add New" />                
            </FooterTemplate> 
           </asp:TemplateField> 

          </Columns> 
          <HeaderStyle Font-Bold="True" ForeColor="White" /> 
          <FooterStyle HorizontalAlign="Right" /> 

         </asp:GridView> 

protected void txtQuantity_TextChanged(object sender, EventArgs e) 
     { 
    AddNewRowToGrid() 
     } 
+0

你为什么认为这是JavaScript的问题?客户是什么意思?它是移动应用程序吗? – Alex 2014-09-24 11:34:36

回答

0

问题是因为页面的生命周期。您需要在生命周期早期收集文本框中的值,而不是触发单击事件时。我记得在使用网络表单时遇到这样的问题,一旦我切换到MVC,发现生活变得更容易。