![](/img/trans.png)
[英]How to display RowHeader in a GridView at runtime in C# Asp.Net?
[英]How to display list<> in gridview ASP.NET C#
我在asp.net c#中有DAL代码,用于选择DB sql服务器中table_users的所有用户。
我的DAL:
public class Users
{
private string _UserName;
public string UserName
{
get { return _UserName; }
set { _UserName = value; }
}
private string _Pass;
public string Pass
{
get { return _Pass; }
set { _Pass = value; }
}
private string _Name;
public string Name
{
get { return _Name; }
set { _Name = value; }
}
private string _Family;
public string Family
{
get { return _Family; }
set { _Family = value; }
}
private string _Mobile;
public string Mobile
{
get { return _Mobile; }
set { _Mobile = value; }
}
}
public List<Users> GetAllUsers()
{
List<Users> usersList = null;
using (DataTable table = SqlDBHelper.ExecuteSelectCommand("GetAllUsers", CommandType.StoredProcedure))
{
if (table.Rows.Count > 0)
{
usersList = new List<Users>();
foreach (DataRow row in table.Rows)
{
Users user = new Users();
user.UserName = table.Rows[0]["UserName"].ToString();
user.Pass = table.Rows[0]["Pass"].ToString();
user.Name = table.Rows[0]["Name"].ToString();
user.Family = table.Rows[0]["Family"].ToString();
user.Mobile = table.Rows[0]["Mobile"].ToString();
usersList.Add(user);
}
}
}
return usersList;
}
和我的BLL通话代码:
public List<Users> GetAllUsers()
{
return userDB.GetAllUsers();
}
现在我想调用在网格视图中显示数据的方法。
public List<Users> usersList = null;
UsersHadler userDB = new UsersHadler();
usersList = userDB.GetAllUsers();
foreach (Users user1 in usersList)
{
GridView1.DataSource = usersList;
GridView1.DataBind();
}
我在base.uer1和user2和user3中有3个用户, 问题是我在gridview 3行中看到一个user1。 user1 user1 user1怎么了? 谢谢您的回复
`
摆脱foreach
循环。 您将为每个用户usersList
一次usersList
并将整个列表绑定到GridView1
。 您只需要做一次。
public List<Users> usersList = null;
UsersHadler userDB = new UsersHadler();
usersList = userDB.GetAllUsers();
GridView1.DataSource = usersList;
GridView1.DataBind();
您可能还想从BLL中调用GetAllUsers
方法,而不是直接在视图中从DAL中调用该方法。 否则,BLL的意义何在?
您的问题出在GetAllUsers
的DAL版本中。 您仅在foreach
循环中引用Rows[0]
。
user.UserName = table.Rows[0]["UserName"].ToString();
user.Pass = table.Rows[0]["Pass"].ToString();
user.Name = table.Rows[0]["Name"].ToString();
user.Family = table.Rows[0]["Family"].ToString();
user.Mobile = table.Rows[0]["Mobile"].ToString();
用以下代码替换GetAllUsers
的DAL副本中的foreach
循环:
foreach (DataRow row in table.Rows)
{
Users user = new Users();
user.UserName = row["UserName"].ToString();
user.Pass = row["Pass"].ToString();
user.Name = row["Name"].ToString();
user.Family = row["Family"].ToString();
user.Mobile = row["Mobile"].ToString();
usersList.Add(user);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.