ここでは例外が発生するコードを示します。引数例外の例外ASP.Net
protected void AddButton_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
int empId = Id++;
Employees employees = new Employees();
employees.AddEmployee(new Employee(empId, txtName.Text, txtEmail.Text, txtMobile.Text, txtLandline.Text, txtWebsite.Text, txtAddress.Text));
foreach (Employee employee in employees.GetList())
{
if (employee.Name.Equals(txtName.Text))
{
Repeater1.DataSource = employee;
Repeater1.DataBind();
}
}
}
else
{
contactsForm.Style.Add("display", "block");
}
それは**型「System.ArgumentExceptionの」の例外を例外 を与えているがのSystem.Web.dllに発生したが、ユーザーコードで
追加情報を扱っていなかった:無効なデータソースがされていますRepeater1に使用されます。有効なデータソースは、IListSourceまたはIEnumerableをのいずれかを実装する必要があります。**
public class Employee
{
public int Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public string MobileNumber { get; set; }
public string LandLineNumber { get; set; }
public string Website { get; set; }
public string Address { get; set; }
public Employee(int id, string name, string email, string mobilenumber, string landlinenumber, string website, string address)
{
Id = id;
Name = name;
Email = email;
MobileNumber = "+91 " + mobilenumber;
LandLineNumber = landlinenumber;
Website = website;
Address = address;
}
}
public class Employees
{
List<Employee> ListOfEmployee = new List<Employee>();
public void AddEmployee(Employee employee)
{
ListOfEmployee.Add(employee);
}
public List<Employee> GetList()
{
return ListOfEmployee;
}
}
これは、従業員クラスです。
どうすればその例外を解決できますか。
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Name") %>'></asp:Label>
<asp:Label ID="Label2" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Email") %>'></asp:Label>
<asp:Label ID="Label3" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "MobileNumber") %>'></asp:Label>
</ItemTemplate>
</asp:Repeater>
これは、リピータは、コレクションを期待しているの.aspxコード