我正在尝试通过以下代码添加数据:
protected void gridview1_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (Session["BranchingCode"] != null)
{
List<CourseDetail> studentList = Course_Detail.GetStudentListOfBranch(Session["BranchingCode"].ToString(), Session["CurrentSession"].ToString());
if (studentList != null)
{
for (int i = 0; i < studentList.Count(); i++)
{
e.Row.Cells[0].Text = studentList[i].UserNameRoll;
e.Row.Cells[1].Text = studentList[i].StudentName;
}
}
}
GridView1.DataBind();
}
}
但是因为Gridview没有附加datasource
,所以此事件不会触发。
请告诉我该怎么办?
反正有没有强行发动这个事件或做其他事情&amp;在其他地方输入数据..?
答案 0 :(得分:2)
你滥用这个事件,如果强行你就不应该打电话。
首先在page_load事件中的某处加载数据并将其绑定到网格:
if (Session["BranchingCode"] != null)
{
List<CourseDetail> studentList = Course_Detail.GetStudentListOfBranch(Session["BranchingCode"].ToString(), Session["CurrentSession"].ToString());
if (studentList != null)
{
GridView1.DataSource = studentList;
GridView1.DataBind();
}
}
这会将您的学生列表绑定到网格。现在我们必须处理在网格上显示数据,有多种方法可以做到这一点,但这应该足够你了:
在您声明GridView的html,xxx.aspx页面中执行此操作:
<asp:GridView ID="GridView1" runat="server" ...... >
<Columns>
<asp:BoundField HeaderText="User Name Roll" DataField="UserNameRoll" />
<asp:BoundField HeaderText="Student Name" DataField="StudentName" />
</Columns>
</asp:GridView>