GridView实现删除时确认,更新时对输入数据进行验证

GridView控件中删除按钮添加确认提示时,其方法类似于向Button中添加客户端验证方法。不过为了可操作性要将这个字段转化为模板。转化为模板后,其<ItemTemplate></ItemTemplate>标签中是一个LinkButton控件,我们就是要在这个控件上添加方法。如下所示。

//为删除按钮添加提示

        protected void gvJobtitle_RowCreated(object sender, GridViewRowEventArgs e)

        {

            ListItemType ItemType = (ListItemType)e.Row.RowType;

            if (ItemType == ListItemType.AlternatingItem || ItemType == ListItemType.Item)

            {

                if (gvJobtitle.EditIndex < 0)

                {//如果控件是正常显示,则为删除按钮添加事件

                    ((LinkButton)e.Row.Cells[3].FindControl("LinkButton1")).Attributes.Add("OnClick","return confirm('确定要删除此记录吗?')");

                }

            }

        }

单击更新时验证其内容是否为空,我们使用ASP DOT NETRequiredFieldValidator控件。其方法也是先将编辑这个字段转化为模板形式。让后将这个验证控件放到要验证的控件后,然后将更新按钮<ItemTemplate></ItemTemplate>标签中的asp控件,验证控件以及要验证的控件设置同一ValidationGrope中。

单击更新时验证输入内容是否为正数。使用ASP DOT NET 控件CompareValidator控件。具体做法同上面更新验证是否为空类似。其属性设置如下:<asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="请输入正数" ControlToValidate ="txtPrice" Display="Dynamic" EnableClientScript ="true"   Operator ="GreaterThan " ValueToCompare ="0"  ValidationGroup="gx" Type="Double" ></asp:CompareValidator>

验证所输入内容是否为空或数据类型,在上面所使用的是ASP DOT NET的验证控件。其介绍,见如下链接:http://blog.csdn.net/zhoufoxcn/archive/2008/10/28/3164300.aspx

合理使用这些控件可以减少开发人员大量些javascript脚本的时间。不过为了熟悉JavaScript我还是尝试了下自己编写代码来完成上面的工作。

按照我们给删除按钮添加提示功能的思路,其实,给更新按钮添加验证也是这样。首先找到更新按钮转化为模板后的控件,并对其增加验证事件。如下代码:

     //编辑

        protected void gvJobtitle_RowEditing(object sender, GridViewEditEventArgs e)

        {

            //处于编辑状态

            gvJobtitle.EditIndex = e.NewEditIndex;

            //重新绑定数据

            gvJobtitle.DataSource = DtSaveJobtitleInfo;

            gvJobtitle.DataBind();

 

            //对更新按钮增加客户端验证方法 ((LinkButton)gvJobtitle.Rows[e.NewEditIndex].Cells[2].FindControl("LinkButton3")).Attributes.Add("OnClick", "return isNum()");

        }

这段代码可以同上面添加删除按钮提示的代码进行下比较哦!

那我们如何获取在要更改的内容呢,也就是从一个Textbox中取出值。以前通过getElementById(<%=Id.ClientID%>);可以获取服务器控件,但是我们看下GridView 在页面大的源文件会发现,根本找不到我们要获取内容的Textbox控件,但是当我们单击了编辑按钮后便可以看到了。我们可以利用如下代码来获取更新的内容:getElementsByTagName('input').item(0).value

JavaScript代码如下:  

 //添加验证gridView控件更新内容是否为数值型数据的代码

        function isNum() {

            var txtChange = document.getElementById('<%=gvJobtitle.ClientID%>').getElementsByTagName('input').item(0).value ;

            var Reg = /^[0-9]+(.[0-9]{3})?$/g;

            if (!Reg.test(txtChange)) {

                alert("请输入正数,小数部分不超过三位");

                return false;

            }

        }

这样就可以了。自己写起来常出现不对的地方,主要还是不熟悉吧。熟能生巧,多联系

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值