我正在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();
}
提前致谢。
答案 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。有一个隐藏的列表可以跟踪该信息。