zoukankan      html  css  js  c++  java
  • K3Cloud DynamicObject数据包操作

    DynamicObject的结构非常简单明了,就是一个字典,类似于一个Dictionary<string, object>,其中的object可能是一个简单值(普通字段),可能是一个复杂值(如基础资料字段),更可能是一个集合(如单据体);

    如果值是一个集合,则这个集合的成员,又会是一个DynamicObject对象。

    实际上,我们并不推荐伙伴直接操作DynamicObject,所以也不会提供此方面的介绍。

    我们是希望开发者通过如下方式读取字段数据:

    1. 在界面插件中,通过如下方式取数:
    this.Model.GetValue(key, rowIndex);

    2. 在其他缺少Model的地方,则采用如下方式取数:
    普通字段:
    var field = businessInfo.GetField(key);
    string value = field.DynamicProperty.GetValue(dynamicObject);

    基础资料字段:
    var baseField = businessInfo.GetField(key) as BaseDataField;
    long id = Convert.ToInt64(baseField.RefIdDynamicProperty.GetValue(dynamicObject));
    DynamicObject bdInfo = baseField.DynamicProperty.GetValue(dynamicObject) as DynamicObject;

    单据体:
    var entity = businessInfo.GetEntity(key);
    DynamicObjectCollection rows = entity.DynamicProperty.GetValue(dynamicObject) as DynamicObjectCollection;

    多选辅助资料:
    MulAssistantField targetFld = businessInfo.GetField(key) as MulAssistantField;
    DynamicObjectCollection mulAssiRows = targetFld.RefEntityDynamicProperty.GetValue(headObj) as DynamicObjectCollection;
    foreach(var row in mulAssiRows)
    {
        string id = Convert.ToString(targetFld.RefIDDynamicProperty.GetValue(row));
        DynamicObject bdInfo = targetFld.DynamicProperty.GetValue(row) as DynamicObject;
    }

    多选基础资料,类似于多选辅助资料,不赘述;
    上述方式,都是通过字段、实体上的DynamicProperty属性到DynamicObject中取数,此属性也提供了SetValue方法赋值;

    3. 既没有Model,也没有字段元数据时,才根据DynamicObject本身的结构,逐层往下取数(高级):
    语句1:取简单值
    string strValue = Convert.ToString(dynamicObject[key]);
    语句2:取复杂值
    DynamicObject bdInfo = dynamicObject[key] as DynamicObject;
    语句3:取集合,及集合中字段值
    DynamicObjectCollection mulAssiRows = dynamicObject[entityKey]  as DynamicObjectCollection;
    foreach(var row in mulAssiRows)
    {
            string id = Convert.ToString(row[key]);
            DynamicObject bdInfo = row[key] as DynamicObject;
    }

  • 相关阅读:
    android 文件上传
    windows去掉开机输入用户名密码
    获取数据时候的滚动条加载……
    服务器标记不正确?在aspx页面如何绑定cs端的参数或绑定
    使用vs2003进行web开发的时候碰到的一些小问题
    c#实现Winform中的分页
    showModalDialog弹出页面以及子页面回传值的问题
    中文传值乱码问题
    引用的类“Infragistics.WebUI.UltraWebTab.UltraWebTab”具有在未被引用的程序集中定义的基类或接口“Infragistics.WebUI.Shared.IUltraLicensedComponent”
    ERwin7.1学习笔记之-
  • 原文地址:https://www.cnblogs.com/jlz-s/p/5541318.html
Copyright © 2011-2022 走看看