0

我无法通过此代码将我的数据源链接到我的转发器

protected void Page_Load(object sender, EventArgs e)
{
    //HiddenField used as a placholder
    HiddenField username = list.FindControl("username") as HiddenField;
    //list is a DataList containing all of the user names
    list.DataSource = Membership.GetAllUsers();
    list.DataBind();
    //Creates a string for each user name that is bound to the datalist
    String user = username.Value;
    //profilelist is a repeater containing all of the profile information
    //Gets the profile of every member that is bound to the DataList
    //Repeater is used to display tables of profile information for every user on
    // the site in a single webform
    profilelist.DataSource = Profile.GetProfile(user);
    profilelist.DataBind();

}

我收到错误消息

An invalid data source is being used for profilelist. A valid data source must implement either IListSource or IEnumerable.
4

3 回答 3

2

那么它不起作用的原因是因为Profile.GetProfile返回ProfileCommon。由于错误说明您设置的类型profilelist.Datasource等于,必须是IListSourceor IEnumerable

我建议不要使用中继器,因为您没有要显示的实际重复数据。

编辑

我认为这就是你想要做的。

        IEnumerable<ProfileCommon> myProfileList = new IEnumerable<ProfileCommon>();

        foreach(var user in userlist)
        {
             myProfileList.Add(Profile.GetProfile(user));
        }

        profilelist.datasource = myProfileList;
于 2012-05-02T02:24:57.310 回答
1

你做错了。正如 Etch 所说,中继器用于列出事物。GetProfile 不返回列表。

你最好把你的控件放在一个面板中,然后在数据绑定事件的“列表”控件中分配它们。

换句话说,这里不需要中继器。

于 2012-05-02T02:34:37.087 回答
0

我忘了把这个贴出来,但对于任何需要做类似事情的人来说,背后的代码都是有效的

protected void Page_Load(object sender, EventArgs e)
{
    List<MembershipUserCollection> usernamelist = new List<MembershipUserCollection>();
    usernamelist.Add(Membership.GetAllUsers());
    List<ProfileCommon> myProfileList = new List<ProfileCommon>();
        foreach (MembershipUser user in usernamelist[0])
        {
            string username = user.ToString();
            myProfileList.Add(Profile.GetProfile(username));
            Label emailLabel = profilelist.FindControl("EmailLabel") as Label;
        }
}

目前,这显示了大约 15 个用户名,并提供了链接到这些用户各自个人资料的能力。

于 2012-06-29T16:45:53.397 回答