如何判断PeopleEditor的值为空

 

在sharepoint开发中,我们经常会用到PeopleEditor这一控件,最近我在写程序的时候用到了,开始的时候不知道怎么用,后来问题解决啦,现在写出来,和大家共享一下,希望对sharepoint初学者有帮助

<SharePoint:PeopleEditor ID="peOwner" runat="server" Rows="1" ValidatorEnabled="True"  MultiSelect="False" 
                 Width="160px" AllowEmpty="true"/>

其中,AllowEmpty:指PeopleEditor能否为空,true:表示允许为空,false:表示不允许为空   默认为true

如果允许为空,当点击提交按钮,向列表中添加数据的时候,要先判断该PeopleEditor是否为空,如果为空的话,就不向列表中添加该数据,如果不为空的话则向列表中添加数据,那么如何判断PeopleEditor为空呢

string strID = "";
foreach (PickerEntity p in this.peOwner.ResolvedEntities)
{
      strID += p.EntityData["SPUserID"].ToString() + ";#;#";s
}

判断strID是否为空,如果strID为空则说明PeopleEditor没有填写任何值,如果不为空,则说明PeopleEditor有值


 
概述:我们在开发sharepoint应用的时候,会觉得他的人员选择控件peopleeditor是一个不错的控件,就想要直接的使用它在我们的usercontrol中,但是他本身是不提供验证输入内容的,除非你手动点击控件右下角的【检查名称】图标。有两个办法可以解决,一个就是关闭控件的输入功能
 

我们在开发sharepoint应用的时候,会觉得他的人员选择控件peopleeditor是一个不错的控件,就想要直接的使用它在我们的usercontrol中,但是他本身是不提供验证输入内容的,除非你手动点击控件右下角的【检查名称】图标。有两个办法可以解决,一个就是关闭控件的输入功能

allowtypein="false"

,只让用户通过选择人员来添加人员,但是这样有的用户觉得不能输入太麻烦了;那就打开输入功能

allowtypein="true",这时候就需要在输入完毕之后点击【检查名称】,然后才能【确定】按钮,提交数据,要不然,提交的没有验证,没有反应,没有提示。看起来很不爽啊!!!!!

通过查看页面的源代码,发现在他的【检查名称】图标的a标记的onclick里面有一段javascript代码,是用来实现客户端验证输入的人员是否存在于系统,我就想我们是否可以在【确定】按钮的客户端验证也添加这段脚本,或者让他帮助点击一下那个【检查名称】图标链接呢?这里使用的就是直接在客户端调用那个a标记的onclick方法

<script type="text/javascript">
        function clientvalidate() {

var client = document.getElementById("<%=peSelectPeople.ClientID %>" + "_checkNames");
            client.click();
            var error = document.getElementById("<%=peSelectPeople.ClientID %>" + "_errorLabel");
            if (error.innerHTML == "" || error.innerHTML==("必须为此必填字段指定值。"))
                return false;
            else
                return true;
        }
</script>

上面是一段JavaScript代码,是一个函数,里面调用了【检查名称】checkNames标记的脚本代码,然后判断errorLabel控件是否提示错误信息。如果提示错误,则返回false;否则返回true。

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="AddPeopleToDepartment.ascx.cs"
    Inherits="Kimbanx.UCS.SystemMaintenance.AddPeopleToDepartment" %>
<%@ Register Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
    Namespace="Microsoft.SharePoint.WebControls" TagPrefix="cc1" %>

<script type="text/javascript">
        function clientvalidate() {

var client = document.getElementById("<%=peSelectPeople.ClientID %>" + "_checkNames");
            client.click();
            var error = document.getElementById("<%=peSelectPeople.ClientID %>" + "_errorLabel");
            if (error.innerHTML == "" || error.innerHTML==("必须为此必填字段指定值。"))
                return false;
            else
                return true;
        }
</script>

<table width="90%">
    <tr>
        <td class="ms-formlabel">
            所在部门
        </td>
        <td class="ms-formlabel">
            <asp:Label runat="server" ID="lblDepartment" Text=""></asp:Label>
        </td>
    </tr>
    <tr>
        <td class="ms-formlabel" valign="top">
            选择人员
        </td>
        <td class="ms-formbody">
            <cc1:peopleeditor id="peSelectPeople" runat="server" allowempty="False" allowtypein="true"
                validatorenabled="True" />
            <asp:RequiredFieldValidator ID="RequiredFieldValidatorPe" runat="server" ErrorMessage="不能为空"
                ControlToValidate="peSelectPeople" Display="Dynamic"></asp:RequiredFieldValidator>
        </td>
    </tr>
    <tr>
        <td class="ms-formlabel">
            职务
        </td>
        <td class="ms-formbody">
            <asp:TextBox runat="server" ID="txtPosition"></asp:TextBox>
        </td>
    </tr>
    <tr>
        <td class="ms-formlabel">
            优先级
        </td>
        <td class="ms-formbody">
            <asp:TextBox runat="server" ID="txtPriority"></asp:TextBox>
            <asp:RegularExpressionValidator ID="RegularExpressionValidatorPriority" runat="server"
                ErrorMessage="只能是大于等于0的数字" ControlToValidate="txtPriority" ValidationExpression="^[1-9]\d*|0$"
                Display="Dynamic"></asp:RegularExpressionValidator>
        </td>
    </tr>
    <tr>
        <td>
        </td>
        <td>
        </td>
    </tr>
    <tr>
        <td colspan="2" align="right">
            <asp:Button ID="btnAdd" Text="添加" runat="server" CssClass="ms-ButtonHeightWidth"
                OnClientClick="return clientvalidate();" OnClick="btnAdd_Click" />&nbsp &nbsp
            <asp:Button ID="btnCancel" Text="取消" runat="server" CssClass="ms-ButtonHeightWidth"
                OnClick="btnCancel_Click" CausesValidation="False" />
        </td>
        <%--<td></td>--%>
    </tr>
</table>

PeopleEditor允许客户端输入的同时验证输入的内容的更多相关文章

  1. js验证输入的金钱格式

    <html> <head> <title>js验证输入的金钱格式</title> <script type="text/javascri ...

  2. jQuery validation学习(1)验证只输入空格通过验证

    当input输入了空格是不会提示信息的 一般会去除空格然后进行验证 这个时候就要添加onkeyup事件去除左侧的空格 验证只输入空格通过验证 //添加验证手机方法 jQuery.validator.a ...

  3. html input验证只能输入数字,不能输入其他

    html input验证只能输入数字,不能输入其他 此方法为借鉴别人的,在此只做记录. <input type="text" onkeyup="if(!/^\d+$ ...

  4. 常用输入的js验证

    身份证 var idnub = document.getElementById('idnub').value; if(idnub.length > 1){ var reg = /(^\d{15} ...

  5. js 捕捉回车键触发登录,并验证输入内容

    js 捕捉回车键触发登录,并验证输入内容 有时候我们会遇到 web 页面中捕捉按键,触发一些效果, 比如常见的回车键触发登录,并验证输入内容,下面会介绍,截图: 一.最简单的捕捉回车键:判断按下的是不 ...

  6. JavaScript:验证输入

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  7. WPF TextBox 验证输入

    //验证输入为数字private void txt_time_KeyDown(object sender, KeyEventArgs e){ if (!((e.Key >= Key.D0 &am ...

  8. javascript不用正则验证输入的字符串是否为空(包含空格)

    在项目中需要验证输入的字符串是否为空,包括空格,不太喜欢使用正则,所以就想到了js的indexOf函数,indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置,如果要检索的字符串值没 ...

  9. Blazor和Vue对比学习(基础1.9):表单输入绑定和验证,VeeValidate和EditFrom

    这是基础部分的最后一章,内容比较简单,算是为基础部分来个HappyEnding.我们分三个部分来学习: 表单输入绑定 Vue的表单验证:VeeValidate Blazor的表单验证:EditForm ...

随机推荐

  1. windows Server2008R2 每隔一段时间自动关机解决办法

    情况描述: “我的电脑-->右键属性”中显示“已激活”,而“管理工具”中显示未激活.系统中有进程wlms.exe. 网上找了下解决方式: 1.提权工具:PSTOOLS(下载地址:http://m ...

  2. FooTable高级的响应式表格jQuery插件

    FooTable是一个高级jQuery插件,允许开发者在触屏智能手机及平板电脑等小型设备上制作数据非常惊人的HTML表格.它可以将HTML表转换成可扩展的响应式表格,且通过单击某一行即可将该行数据隐藏 ...

  3. 解决already defined in .obj 的问题(定义/声明的区别)

    首先需要搞清楚什么是定义(definition ),什么是声明(declaration). 一.函数 函数的声明: int myfunc(int a,int b); 定义: int myfunc(in ...

  4. java将数据写入到txt文件中(txt有固定的格式)

    java将数据写入到txt文件中,这个应该对于学过java I/O的人来说是很简单的事情了,但是如果要将数据以固定的格式写入到txt文件中,就需要一定的技巧了. 这里举个简单的例子,以供参考: 比如我 ...

  5. Longest Increasing Common Subsequence (LICS)

    最长上升公共子序列(Longest Increasing Common Subsequence,LICS)也是经典DP问题,是LCS与LIS的混合. Problem 求数列 a[1..n], b[1. ...

  6. <jsp:invoke fragment=""/>的理解和使用

    在传统 JSP 中,想要实现页面布局管理比较麻烦,为了解决在 JSP 中布局的问题,出现了很多开源软件,比如 Apache Tiles 和 SiteMesh 就是其中比较优秀的.但是使用开源软件实现布 ...

  7. Swift开发学习-03 Swift技巧

    一 两个数字交换算法 1.算法1 func swap(inout num1:int , inout num2:int){ num1 = num1 ^ num2 ; num2 = num1 ^ num2 ...

  8. poj1787Charlie's Change(多重背包+记录路径+好题)

    Charlie's Change Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 3720   Accepted: 1125 ...

  9. 部署搭建 Saltstack(centos6.6)

    SaltStack介绍 官网:https://docs.saltstack.com/en/latest/ 中国saltstack用户组http://www.saltstack.cn/ 下图是它的子系统 ...

  10. Matplotlib中文设置

    1.中文设置方法,代码前加入语句 from pylab import mpl mpl.rcParams['font.sans-serif'] = ['SimHei'] 2.例子 # -*- codin ...