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

1

あなたはこれについて間違っています。Etch が言ったように、リピーターはリスト用です。GetProfile はリストを返しません。

コントロールをパネルに配置し、それらを「リスト」コントロール ondatabinding イベントに割り当てる方がよいでしょう。

つまり、ここではリピーターは必要ありません。

于 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 に答える