您的位置:首页 > 其它

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

2009-04-14 17:35 337 查看
/// <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() + "}", "");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: