ITPub博客

首页 > Linux操作系统 > Linux操作系统 > MySoft组件之MySoft.Web一个简单示例

MySoft组件之MySoft.Web一个简单示例

原创 Linux操作系统 作者:iDotNetSpace 时间:2010-04-14 16:55:54 0 删除 编辑

今天抽了点时间写了一个很简单的MySoft.Web相关组件的示例程序。

别看它简单,但五脏俱全,下面就一一介绍这个示例的各种实现:

第一步:建一个Web项目,引用MySoft.Web程序集:

tmp94D9

将MySoft.Web引用添加到当前项目中,在bin目录下为最新版本,之前的版本不保证可以编译通过

 

第二步:配置web.config

    false" enableSessionState="true">
      
        my" namespace="MySoft.Web.UI.Controls" assembly="MySoft.Web" />
      
    
    
      GET,POST" path="ajax/*.ashx" type="MySoft.Web.AjaxPageHandler, MySoft.Web"/>
    

上面的controls是使用MySoft内部控件时所需的。

httpHandlers里的配置是用于Ajax处理

 

第三步:编写客户端脚本与服务端通讯

后台: 实现客户端读取服务端时间的代码

注意:需要启用EnableAjaxCallback

public partial class _Default : AjaxPage
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    [AjaxMethod]
    public DateTime GetServerDateTime()
    {
        return DateTime.Now;
    }

    protected override bool EnableAjaxCallback
    {
        get
        {
            return true;
        }
    }
}

前台:

function getDateTime() {
    var time = AjaxMethods.GetServerDateTime();
    alert(time.toLocaleString());
}

此处的AjaxMethods内部对象,表示当前页面所有[AjaxMethod]方法的集合

 

Ajax方式加载用户控件的方法:

新建一个用户控件,起名为:TestParamControl.ascx

客户端代码:

function loadUserControlWithParam() {

    var value = $('txtName').value;
    if (!value) {
        Dialog.alert('请输入名字!');
        return;
    }


    //divContainer为

容器

    //~/TestParamControl.ascx为用户控件路径

    //{Name : value }此处为用户控件的参数,可以传入多个参数

    Ajax.UpdatePanel('divContainer', '~/TestParamControl.ascx', { Name: value });
}

服务端代码:

public partial class TestParamControl : System.Web.UI.UserControl, MySoft.Web.UI.IAjaxProcessEventHandler
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    #region IAjaxProcessEventHandler 成员

    //加载数据必须实现接口IAjaxProcessEventHandler
    public void OnAjaxProcess(CallbackParams callbackParams)
    {

        因为数据从客户端传入服务端为字符串,所以需要进行一些转换

        callbackParams可以很方便的转换成各种数据类型,如下:

        int age = callbackParams[“age”].To();

        DateTime time = callbackParams[“startDate”].To();

        直接获取string,可使用callbackParams[“参数名"]或callbackParams[“参数名"].Value;


        this.Label1.Text = "你的名字是:" + callbackParams["Name"].Value;
    }

    #endregion
}

 

插入代码块的功能居然报出了bug:

System.NullReferenceException: 未将对象引用设置到对象的实例。
   在 CodemarksFramework.LiveWriter.Plugins.FrmLiveWriterPlug..ctor()
   在 CodemarksFramework.LiveWriter.Plugins.FrmLiveWriterPlug..ctor(String& content)
   在 CodemarksFramework.LiveWriter.Plugins.LiveWriterAdapter.CreateContent(IWin32Window dialogOwner, String& content)
   在 WindowsLive.Writer.PostEditor.ContentSources.ContentSourceManager.PerformInsertion(IContentSourceSite sourceSite, ContentSourceInfo contentSource)

不知道有谁知道怎样解决!

 

先写到这里吧,自己下载源码去研究,还有很多功能需要你们自己去发掘!

这里是效果图:

tmp1BE3

Ajax加载用户控件效果图:

tmp3B2B

Dialog弹出框效果图:

tmp160C

Dialog提示框效果图:

tmpE849

 

 

 

示例下载地址:http://files.cnblogs.com/maoyong/WebExample.rar

MySoft.Data从入门到精通系列篇

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12639172/viewspace-659719/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-01-04

  • 博文量
    2376
  • 访问量
    5777922