对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 NET的RequiredFieldValidator控件。其方法也是先将编辑这个字段转化为模板形式。让后将这个验证控件放到要验证的控件后,然后将更新按钮<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;
}
}
这样就可以了。自己写起来常出现不对的地方,主要还是不熟悉吧。熟能生巧,多联系