After spending hours trialing and erroring, it was resolved by adding a .DataBind() in the Page_Load method.
UserControl.ascx.cs
protected void Page_Load(object sender, EventArgs e)
{
gvPPL.DataBind();
}
UserControl.ascx
<SharePoint:MenuTemplate ID="gvPPLMenu" runat="server">
<SharePoint:MenuItemTemplate ID="editMenu" runat="server" Text="Edit" ClientOnClickNavigateUrl="/_layouts/BPOSproperties/ProjectSettings.aspx?type=edit&url=%EDIT%" />
</SharePoint:MenuTemplate>
<SharePoint:SPGridView ID="gvPPL" runat="server" AutoGenerateColumns="false" DataSourceID="pplDataSource">
<Columns>
<SharePoint:SPMenuField HeaderText="NameMenu" TextFields="Name" MenuTemplateId="gvPPLMenu"
NavigateUrlFields="Email" NavigateUrlFormat="{0}" TokenNameAndValueFields="EDIT=Email" />
<SharePoint:SPBoundField HeaderText="Name" DataField="Name" />
</Columns>
</SharePoint:SPGridView>
<asp:ObjectDataSource ID="pplDataSource" runat="server" TypeName="BPOSsite.PeopleManager, BPOSsite, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c9ab07f514f0925b" SelectMethod="GetPeople" />
People.cs
namespace BPOSsite
{
public class People
{
private string name;
private string email;
public People(string n, string e)
{
this.email = e;
this.name = n;
}
public string Name
{
get { return name; }
set { name = value; }
}
public string Email
{
get { return email; }
set { email = value; }
}
}
public class PeopleManager
{
public List<People> GetPeople()
{
List<People> list = new List<People>();
list.Add(new People("John", "john@mail.com"));
list.Add(new People("Nick", "nick@mail.com"));
list.Add(new People("Tracy", "tracy@mail.com"));
list.Add(new People("Dick", "dick@mail.com"));
return list;
}
}
}
No comments:
Post a Comment