为什么这个就是不能绑定成功呢?提示错误是在“迟到天数”那一列 -----在位置 0 处没有任何行。
/// 以下是.CS中的代码
protected void SearchBtn_Click(object sender, System.EventArgs e)
{
DataSet ds = new DataSet();
//得到考勤数据
DutyTime duty = new DutyTime();
SqlDataReader recd = duty.GetAttendances(DateTime.Parse(Begintime.Text.Trim()),
DateTime.Parse(Endtime.Text.Trim()),Int32.Parse(StaffList.SelectedValue));
DataTable dutydb = SystemTools.ConvertDataReaderToDataTable(recd);
ds.Tables.Add(dutydb);
dvDuty = ds.Tables[0].DefaultView;
AttendanceList.DataSource = dvDuty;
AttendanceList.DataBind();
}
public string GetGridData(string staffid,int type)
{
//type:0 正常 1:迟到 2:早退 3:未考勤 4:总考勤天数
switch(type)
{
case 0:
dvDuty.RowFilter = "OnDutyStatus = 1 and OffDutyStatus = 1 and UID=" + staffid;
break;
case 1:
dvDuty.RowFilter = "OnDutyStatus=0 and UID=" + staffid;
break;
case 2:
dvDuty.RowFilter = "OffDutyStatus=0 and UID=" + staffid;
break;
case 3:
dvDuty.RowFilter = "UID=" + staffid;
return((dvDuty.Count - dvDuty.Count).ToString());
case 4:
break;
}
return(dvDuty.Count.ToString());
}
//以下是源代码
TD align="right" colSpan="2"><asp:datagrid id="AttendanceList" runat="server" Width="100%" AutoGenerateColumns="False" EnableViewState="False"
DataKeyField="AttendenceID" BorderColor="#93BEE2" BorderWidth="1px" CellPadding="3">
<HeaderStyle Font-Size="X-Small" BackColor="#E8F4FF"></HeaderStyle>
<Columns>
<asp:BoundColumn DataField="RealName" HeaderText="姓名">
<ItemStyle Font-Size="X-Small"></ItemStyle>
<FooterStyle Font-Size="X-Small"></FooterStyle>
</asp:BoundColumn>
<asp:TemplateColumn HeaderText="正常天数">
<ItemTemplate>
<%# GetGridData(((DataRowView)Container.DataItem)["UID"].ToString(), 0)%>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="迟到天数"> ///在此错提示了一个错误(在位置 0 处没有任何行。)
<ItemTemplate>
<%# GetGridData(((DataRowView)Container.DataItem)["UID"].ToString(), 1)%>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="早退天数">
<ItemTemplate>
<%# GetGridData(((DataRowView)Container.DataItem)["UID"].ToString(), 2)%>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="未考勤天数">
<ItemTemplate>
<%# GetGridData(((DataRowView)Container.DataItem)["UID"].ToString(), 3)%>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="总考勤天数">
<ItemTemplate>
<%# GetGridData(((DataRowView)Container.DataItem)["UID"].ToString(), 4)%>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle Mode="NumericPages" />
</asp:datagrid></TD>