如何格式化c#中的person或group字段值?

时间:2013-08-28 09:28:10

标签: sharepoint-2010

我正在c#中检索我的sharepoint列表数据并分配到SPGridview中。 以下是我用来填充SPGridview的代码。 我的SPGridview中有一个名为“Contact”的列,它被映射到person或group字段。

绑定后,当我看到SPGridview中的“联系人”栏时,我看到的结果如“Kumar,Ramesh;#55;#Kumar,Amit”。 但我希望结果像“Kumar,Ramesh; Kumar,Amit”。

请帮我解决这个问题。

public void btnSearch_Click(object sender, EventArgs e)
{
            SPList myList = SPContext.Current.Web.Lists["MyList"];
            SPQuery query = new SPQuery();

            query.Query = @"<Where>
      <And>
         <Eq>
            <FieldRef Name='Year_x0020_Start' />
            <Value Type='Text'>2010</Value>
         </Eq>
         <Eq>
            <FieldRef Name='Year_x0020_End' />
            <Value Type='Text'>2012</Value>
         </Eq>
      </And>
   </Where>";

            DataTable tempTbl = myList.GetItems(query).GetDataTable();
            gdvSearchResults.DataSource = tempTbl;
            gdvSearchResults.DataBind();
}

提前致谢。

1 个答案:

答案 0 :(得分:0)

我有类似的问题,但在不同的情况下。我正在使用内容查询Web部件并编辑XSL模板。但同样的#55等出现了。我通过JavaScript使用正则表达式摆脱它。可能你可以在绑定到SPGridView之前在DataTable列上执行相同的操作。我使用的正则表达式是:

.replace(/[;#0-9]+/g, "; ")

我在这里写了博客:http://davidpopdan.blogspot.com/2012/11/using-people-picker-with-multiple-names.html

此外,如果您想知道这些数字是什么,它们就是您正在使用的网站集所特有的用户ID。有一个隐藏的列表可以跟踪该信息。