asp.net从列表<>方法得到值方法
我有数据访问类有列表<>类型的方法。在哪些数据完美地来自SQL服务器,但我需要通过迭代列表<>数据在我的ASP GridView中显示它。这是我的数据访问层。asp.net从列表<>方法得到值方法
public class AdminPanelDataAccessLayer
{
public List<PersonalInformation> GetAllPersonalInfo()
{
List<PersonalInformation> listsPersonalInfo = new List<PersonalInformation>();
string connString = ConfigurationManager.ConnectionStrings["HRMS"].ConnectionString;
using (SqlConnection conn = new SqlConnection(connString))
{
SqlCommand cmd = new SqlCommand("usp_GetApplicantCNICAndName", conn);
cmd.CommandType = CommandType.StoredProcedure;
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
PersonalInformation pi = new PersonalInformation();
pi.CNIC = reader["CNIC"].ToString();
pi.Name = reader["Name"].ToString();
listsPersonalInfo.Add(pi);
}
return listsPersonalInfo;
}
}
}
这是通过迭代在GridView中显示数据的方法。
private void GetAllData()
{
AdminPanelDataAccessLayer apdal = new AdminPanelDataAccessLayer();
List<PersonalInformation> pi = apdal.GetAllPersonalInfo();
DataTable dt = new DataTable();
DataRow dr = null;
dt.Columns.Add(new DataColumn("CNIC", typeof(string)));
dt.Columns.Add(new DataColumn("Name", typeof(string)));
foreach (object item in pi)
{
dr = dt.NewRow();
dr["CNIC"] = pi.Select(o => o.CNIC);
dr["Name"] = pi.Select(o => o.Name);
dt.Rows.Add(dr);
}
ViewState["CurrentTable"] = dt;
GridView2.DataSource = dt;
GridView2.DataBind();
}
请指导我实现我的目标。
您是否尝试过使用'pi'List作为您的网格的数据源?
GridView2.DataSource = pi;
GridView2.DataBind();
是的这是工作,但这是自动生成GridView的行和列,但我需要生成我自己的GridView的行和列 –
您应该能够手动定义网格列aspx页面
是的,这将自动绑定,但在我的高级我想在gridview中显示该sql表的一些记录不是所有这就是为什么我不使用自动方法 –
添加你的字段到网格在你的ASPX:
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="false">
<asp:BoundField DataField="CNIC" />
<asp:BoundField DataField="Name" />
</asp:GridView>
后面的代码:
private void GetAllData()
{
AdminPanelDataAccessLayer apdal = new AdminPanelDataAccessLayer();
List<PersonalInformation> pi = apdal.GetAllPersonalInfo();
//remove any records here, i am just removing first element here
if (pi.Count > 0)
pi.RemoveAt(0);
GridView2.DataSource = pi ;
GridView2.DataBind();
}
我需要生成行和列从代码迭代List 对象并将其保存到GridView中一个接一个 –
我不确定你是什么意思。那么为什么不直接将列表绑定到网格?并按指示添加带有相应数据字段的绑定字段。 – Coding
好吧我会这样做,但如何迭代List 对象数据到这个列> –
可能重复https://stackoverflow.com/questions/6943680/populate- a-usercontrol-gridview-with-a-list-of-objects – DiegoS
[用对象列表填充UserControl GridView]的可能重复(https://stackoverflow.com/questions/6943680/populate-a-usercontrol-gridview -with-a-list-of-objects) – DiegoS
它是Windows还是Web?请包括ASPX如果任何.. – Coding