有一个需求,需要在GridView中批量输入数字!

 于是想到封装一个TextBox

代码如下:

只允许输入数字型Textbox演示public class NumberText : TextBox
    }

关键点:第一,不要重复注册脚本,第二:要写在OnPreRender事件中

 在引用的Page页面中,可以这样调用 

只允许输入数字型Textbox演示 protected override void OnPreLoad(EventArgs e)
        }

这样一来, 这个 NumberText只接收数字输入,如果需要小数点,可以再修改代码。不过,这里建议用两个NumberText来拼一个浮点数字,这样很好验证,因为小数字的位置不好固定。当然用正则也可以。

这里给出另外一个例子,首先,客户端验证:

只允许输入数字型Textbox演示protected void Page_Load(object sender, EventArgs e)
        }

第二步,服务器端验证:以GridView为例

前台页面:

只允许输入数字型Textbox演示 <asp:GridView ID="GVList" runat="server" ShowFooter="true" AutoGenerateColumns="False"
只允许输入数字型Textbox演示                BorderStyle
="Solid" BorderColor="#ffffff" GridLines="Horizontal" CellSpacing="1"
只允许输入数字型Textbox演示                Width
="640" HorizontalAlign="center" BorderWidth="0px" EnableViewState="true"
只允许输入数字型Textbox演示                DataKeyNames
="CustomID">
只允许输入数字型Textbox演示                
<HeaderStyle BackColor="#1C5E55" ForeColor="White" HorizontalAlign="center" Height="30px" />
只允许输入数字型Textbox演示                
<AlternatingRowStyle BackColor="#f7f7f7" />
只允许输入数字型Textbox演示                
<RowStyle HorizontalAlign="center" Height="25px" BackColor="#E3EAEB" />
只允许输入数字型Textbox演示                
<SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />
只允许输入数字型Textbox演示                
<Columns>
只允许输入数字型Textbox演示                    
<asp:TemplateField>
只允许输入数字型Textbox演示                        
<HeaderStyle Width="60px" BackColor="#1C5E55" ForeColor="White" />
只允许输入数字型Textbox演示                        
<HeaderTemplate>
只允许输入数字型Textbox演示                            分类编号
</HeaderTemplate>
只允许输入数字型Textbox演示                        
<ItemTemplate>
只允许输入数字型Textbox演示                            
<asp:Label ID="PKID" Text='<%# DataBinder.Eval(Container.DataItem,"CustomID")%>'
只允许输入数字型Textbox演示                                runat="server" />
只允许输入数字型Textbox演示                        
</ItemTemplate>
只允许输入数字型Textbox演示                    
</asp:TemplateField>
只允许输入数字型Textbox演示                   
<asp:TemplateField>
只允许输入数字型Textbox演示                        
<HeaderStyle Width="60px" BackColor="#1C5E55" ForeColor="White" />
只允许输入数字型Textbox演示                        
<HeaderTemplate>
只允许输入数字型Textbox演示                            单位
</HeaderTemplate>
只允许输入数字型Textbox演示                        
<ItemTemplate>
只允许输入数字型Textbox演示                            
<asp:Label ID="C_Unit" Text="元/公斤" runat="server" />
只允许输入数字型Textbox演示                        
</ItemTemplate>
只允许输入数字型Textbox演示                    
</asp:TemplateField>
只允许输入数字型Textbox演示                    
<asp:TemplateField>
只允许输入数字型Textbox演示                        
<HeaderTemplate>
只允许输入数字型Textbox演示                            最高价
</HeaderTemplate>
只允许输入数字型Textbox演示                        
<ItemTemplate>
只允许输入数字型Textbox演示                            最高价:
只允许输入数字型Textbox演示                            
<asp:TextBox ID="txtMaxPrice" runat="Server" CssClass="PriceStyle" MaxLength="6" />
只允许输入数字型Textbox演示                        
</ItemTemplate>
只允许输入数字型Textbox演示                    
</asp:TemplateField>
只允许输入数字型Textbox演示                    
<asp:TemplateField>
只允许输入数字型Textbox演示                        
<HeaderTemplate>
只允许输入数字型Textbox演示                            最低价
只允许输入数字型Textbox演示                        
</HeaderTemplate>
只允许输入数字型Textbox演示                        
<ItemTemplate>
只允许输入数字型Textbox演示                            最低价:
<asp:TextBox ID="txtMinPrice" runat="Server" CssClass="PriceStyle" MaxLength="6" />
只允许输入数字型Textbox演示                        
</ItemTemplate>
只允许输入数字型Textbox演示                    
</asp:TemplateField>
只允许输入数字型Textbox演示                    
<asp:TemplateField>
只允许输入数字型Textbox演示                        
<HeaderTemplate>
只允许输入数字型Textbox演示                            平均价
</HeaderTemplate>
只允许输入数字型Textbox演示                        
<ItemTemplate>
只允许输入数字型Textbox演示                            平均价:
只允许输入数字型Textbox演示                            
<asp:TextBox ID="txtAvePrice" runat="Server" CssClass="PriceStyle" MaxLength="6" />
只允许输入数字型Textbox演示                        
</ItemTemplate>
只允许输入数字型Textbox演示                    
</asp:TemplateField>
只允许输入数字型Textbox演示                
</Columns>
只允许输入数字型Textbox演示            
</asp:GridView>
只允许输入数字型Textbox演示  
<asp:Button ID="btnInsert" Text="上传所填数据" runat="server" OnClientClick="javascript:return confirm('每天只能上传一次,重复上传会替换今日已上传的数据,确认要上传您的报价信息吗?')" />

后台代码:

只允许输入数字型Textbox演示private void btnInsert_Click(object sender, EventArgs e)
        }

此时,每次验证结束时,将会提示用户一个编号,便于用户准确定位于错误行,以进行修改。

相关文章: