2、CRM2011编程实战——设置窗体某一项的值为服务器时间

来源:互联网 发布:凸优化应用 编辑:程序博客网 时间:2024/05/24 04:58

需求:设置窗体中某个控件的值为服务器时间。

解决方案:通过一个一般处理程序获取服务器时间,然后通过ajax形式获取到此服务器时间并赋值给界面控件。

1、新建一个一般处理程序GetSererTimeHandler.ashx

代码如下:

<%@ WebHandler Language="C#" Class="GetSererTimeHandler" %>using System;using System.Web;namespace IsWaterWeb{    public class GetSererTimeHandler : IHttpHandler    {        public void ProcessRequest(HttpContext context)        {            context.Response.ContentType = "text/plain";            string action = context.Request["action"];            if (action == "GetTime")            {                string date = DateTime.Now.ToString();                context.Response.Write(date);            }        }        public bool IsReusable        {            get            {                return false;            }        }    }}

Js调用代码如下:

// get server timefunction getServerTime() {    if (Xrm.Page.ui.getFormType() == 1) {        $.post("/isv/Handlers/GetSererTimeHandler.ashx", { "action": "GetTime" }, changeShowTime);    }}//new Date("2009/02/03 11:12:13")var changeShowTime = function (data) {    Xrm.Page.getControl("hxcs_fdatetimeofrequesthelp").getAttribute().setValue(new Date(data)); //将服务器时间赋值给窗体控件显示};

注意:由于这里使用到了jquery代码,所以在资源文件中,要先引入jquery.js库。如下:


备注:如果你是在应用程序中新建的一般处理程序,那么你build应用程序后,将bin中的dll以及GetSererTimeHandler.ashx文件一同拷贝到CRM服务器上面去。我这里的应用程序名称是IsWaterWeb,对应生成的dllIsWaterWeb.dll,将dll一同拷贝到CRM服务器上面的指定文件夹下,如:C:\Program Files\Microsoft Dynamics CRM\CRMWeb\ISV\bin。如果没有bin目录,就新建一个。一般处理程序就拷贝到如下目录:



如果是在web网站中新建的一般处理程序,那么你可以直接把GetSererTimeHandler.ashx,和GetSererTimeHandler.ashx.cs一起拷贝到如上目录。


6 0
原创粉丝点击