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

来源:互联网 发布:linux reboot重启提示 编辑:程序博客网 时间:2024/05/29 13:55

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;

           }

       }

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