zoukankan      html  css  js  c++  java
  • SharePoint 2010 列表查阅项栏的formfield控件对象取值

    开发的时候想当然的认为主表解析出来就是一个dropdownlist,可是在大数据测试的时候,发现有情况。

      首先创建一个子列表:DetailList,并添加19条数据:

      创建主列表:MainList,并新建“查阅项”栏关联这个子表的标题。

      

      MainList新建页面显示查阅项控件的样式:

      当DetailList再增加一条数据

      这个时候,MainList的新建显示将会不同。

      显然当“查阅项”超过20条数据的情况,这个formfield会改变控件的样式。

       如果我们需要后台生成这个控件的对象,或者编码将formfield通过对象解析出来,并获取值的时候,就要注意两种不同的情况了

       首先判断这个formfield的类型

    SPList spList = SPContext.Current.Web.Lists["MainList"];
    string fieldType = spList.Fields["DetailList标题"].TypeAsString;

     则这个fieldType为Lookup

     根据这个类型通过生成对象取值

    string fieldValue = string.Empty;//获取选中的值
    if (fieldType == "Lookup")
    {
        LookupField lfField = ((LookupField)this.FindControl(controlId));
        string name = lfField.Field.InternalName;
        if (lfField.Controls[0] is DropDownList)
         {
             DropDownList ddl = (DropDownList)lfField.Controls[0];
             if (ddl.SelectedItem != null)
                {
                    fieldValue = ddl.SelectedItem.Text;
                 }
         }
         if (lfField.Controls[0] is Literal)
         {
             TextBox tb = (TextBox)ddcField.Controls[1];//注意是第2个控件
           if (tb.Text != null)
             {
                 fieldValue = tb.Text;
             }
         }
    }
  • 相关阅读:
    智能移动机器人背后蕴含的技术——激光雷达
    Kalman Filters
    Fiddler抓HttpClient的包
    VSCode开发WebApi EFCore的坑
    WPF之小米Logo超圆角的实现
    windows react打包发布
    jenkins in docker踩坑汇总
    Using ML.NET in Jupyter notebooks 在jupyter notebook中使用ML.NET ——No design time or full build available
    【Linux知识点】CentOS7 更换阿里云源
    【Golang 报错】exec gcc executable file not found in %PATH%
  • 原文地址:https://www.cnblogs.com/tdskee/p/3312221.html
Copyright © 2011-2022 走看看