Sharepoint 中读取得不同类型SPField 时的处理方式之二

113 篇文章 0 订阅
112 篇文章 0 订阅

         /// <summary>
        /// 对目标字串,根据ListItem 和对应的 Field, 更新其中的字段内容
        /// </summary>
        /// <param name="myContent">Content String</param>
        /// <param name="myItem">SPListItem Object</param>
        /// <param name="myFld">SPField Object</param>
        private void TranslateContentField(ref string myContent, SPListItem myItem, SPField myFld)
        {

            try
            {
                //Delete 1;#, 2;# ... and diplay only the option value (Category1 instead of 1;#Category1)
                // use ;# as a starting symbol and #; as a ending symbol
                if (myFld.Type.ToString() == "Lookup" || myFld.Type.ToString() == "User")
                {
                    myContent = myContent.Replace("{" + myFld.ToString() + "}", "#^" + myItem[myFld.InternalName.ToString()].ToString() + "^#");
                    myContent = myContent.Replace("#^^#", ""); // remove #^^# from blank cell
                    myContent = GetDataFromLookUpOrUser(myContent);
                }
                else if (myFld.Type.ToString() == "URL")
                {
                    int commaPos = myItem[myFld.InternalName.ToString()].ToString().IndexOf(",");

                    // Remove information after the delimiter ","
                    //myContent = myContent.Replace("{" + myFld.ToString() + "}", myItem[myFld.InternalName.ToString()].ToString());
                    //myContent = myContent.Replace(myItem[myFld.InternalName.ToString()].ToString(), "<img src=" + myItem[myFld.InternalName.ToString()].ToString().Substring(0, commaPos) + " border='0'/>");
                    if (((SPFieldUrl)myFld).DisplayFormat == SPUrlFieldFormatType.Image)
                        myContent = myContent.Replace("{" + myFld.ToString() + "}", "<img src=" + myItem[myFld.InternalName.ToString()].ToString().Substring(0, commaPos) + " border='0'/>");
                    else
                        myContent = myContent.Replace("{" + myFld.ToString() + "}", myItem[myFld.InternalName.ToString()].ToString().Substring(0, commaPos));
                }
                else if (myFld.Type.ToString() == "Calculated")
                {
                    myContent = myContent.Replace("{" + myFld.ToString() + "}", "#%" + myItem[myFld.InternalName.ToString()].ToString() + "%#");
                    myContent = myContent.Replace("#%%#", ""); // remove #%%# from blank cell
                    myContent = GetDataFromCalculatedField(myContent);
                }
                else if (myFld.Type.ToString() == "MultiChoice")
                {
                    myContent = myContent.Replace("{" + myFld.ToString() + "}", "#*MC" + myItem[myFld.InternalName.ToString()].ToString().Substring(2, myItem[myFld.InternalName.ToString()].ToString().Length - 2) + "MC*#");
                    myContent = myContent.Replace("#*MCMC*#", "");
                    myContent = this.GetDataFromMultipleChoice(myContent);
                }
                else if (myFld.Type.ToString() == "ModStat") //need modification
                {
                    string modStat = "";
                    if (myItem[myFld.InternalName.ToString()].ToString() == "0")
                    {
                        modStat = "Approved";
                    }
                    else if (myItem[myFld.InternalName.ToString()].ToString() == "2")
                    {
                        modStat = "Pending";
                    }
                    myContent = myContent.Replace("{" + myFld.ToString() + "}", modStat);
                }
                else if (myFld.Type.ToString() == "Boolean")
                {
                    string bol = "";

                    if (myItem[myFld.InternalName.ToString()].ToString() == "True")
                    {
                        bol = "Yes";
                    }
                    else
                    {
                        bol = "";
                    }
                    myContent = myContent.Replace("{" + myFld.ToString() + "}", bol);
                }
                else if (myFld.Type.ToString() == "Currency") //need modification
                {
                    myContent = myContent.Replace("{" + myFld.ToString() + "}", myItem[myFld.InternalName.ToString()].ToString());
                }
                else
                {
                    //Debug
                    //myContent = myContent.Replace("{" + myFld.ToString() + "}", myItem[myFld.InternalName.ToString()].ToString() + myFld.Type.ToString());
                    myContent = myContent.Replace("{" + myFld.ToString() + "}", myItem[myFld.InternalName.ToString()].ToString());
                }
            }
            catch (Exception)
            {
                myContent = myContent.Replace("{" + myFld.ToString() + "}", "");
            }
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值