0

我正在 c# 中检索我的共享点列表数据并分配给 SPGridview。下面是我用来填充 SPGridview 的代码。我的 SPGridview 中有一个名为“联系人”的列,它映射到人员或组字段。

绑定后,当我在 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();
}

提前致谢。!

4

1 回答 1

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,对于您正在使用的网站集来说是唯一的。有一个隐藏的列表可以跟踪该信息。

于 2013-08-28T14:54:54.937 回答