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() + "}", "");
}
}
/// 对目标字串,根据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() + "}", "");
}
}
相关文章推荐
- Sharepoint 中读取得不同类型SPField 时的处理方式之一
- ExpandableListView的用法,不同类型数据源的处理方式
- asp.net不同类型文件读取处理
- 使用OLEDB方式读取Excel文件到DataTable中数据类型的处理
- ==和Equals的在值类型和引用类型的不同处理方式
- http请求头部content-type不同类型的解析方式
- otl处理不同类型字段
- Python文件处理之文件读取方式(二)
- SQL2005-SSIS 对同一个文件中的不同行类型做不同处理
- 使用UI Automation实现自动化测试--5 (Winfrom和WPF中弹出和关闭对话框的不同处理方式)
- IDEA读取本地文件进行处理的方式
- [Python]xlrd 读取excel 日期类型2种方式
- mybatis 调用存储过程,处理返回2个不同类型的结果集
- CXF处理Date类型的俩种方式
- sas数据读取详解:SAS读取小工具,读取数值类型的注意事项,lrecl选项,四种读取数据方式以及数据指针的位置、读取mess data的、infile语句及其选项(dsd dlm missover truncover obs firstobs)、proc import、自定义缺失值
- android v7兼容包RecyclerView的使用(四)——点击事件的不同方式处理
- JSP自定义标签_属性接收复杂类型处理方式
- python 不同方式读取文件速度不同的实例
- 强类型的数据集,在处理以直接附加方式的SQLServer的MDF文件时无法更新数据-原因分析
- C++处理const类型变量与C的不同