Ich versuche, ein Raster aus Daten aus einem Active Directory geladen. Ich habe das GridView wie folgt dargelegt. Das Problem ist, die Aufzeichnungen erstellt werden, aber die Daten werden nicht angezeigtDynamisch laden Gridview nicht angezeigt und Daten
<asp:gridview ID="Gridview1" runat="server" ShowFooter="true" AutoGenerateColumns="false" AllowPaging="True" Visible="false"
BackColor="White" BorderColor="#3366CC" BorderStyle="None" BorderWidth="1px" CellPadding="4"
style ="z-index: 2; left: 65px; top:355px; position: absolute; height: 221px; width: 1158px">
<Columns>
<asp:BoundField DataField="RowNumber" HeaderText="Row Number" />
<asp:TemplateField HeaderText="Employee No">
<ItemTemplate>
<asp:Label ID="EmployeeNo" runat="server" style="color:blue"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<asp:Label ID="DisplayName" runat="server"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Department">
<ItemTemplate>
<asp:Label ID="Department" runat="server"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Job Title">
<ItemTemplate>
<asp:Label ID="JobTitle" runat="server"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Manager">
<ItemTemplate>
<asp:Label ID="Manager" runat="server"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Employee ID">
<ItemTemplate>
<asp:Label ID="Name" runat="server"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:gridview>
Ich betreibe die Funktion unten, bevor die Active Data sammeln
private void SetInitialRow()
{
DataTable dt = new DataTable();
DataRow dr = null;
dt.Columns.Add(new DataColumn("RowNumber", typeof(string)));
dt.Columns.Add(new DataColumn("EmployeeNo", typeof(string)));
dt.Columns.Add(new DataColumn("DisplayName", typeof(string)));
dt.Columns.Add(new DataColumn("Department", typeof(string)));
dt.Columns.Add(new DataColumn("JobTitle", typeof(string)));
dt.Columns.Add(new DataColumn("Manager", typeof(string)));
dt.Columns.Add(new DataColumn("Name", typeof(string)));
dr = dt.NewRow();
dr["RowNumber"] = 1;
dr["EmployeeNo"] = string.Empty;
dr["DisplayName"] = string.Empty;
dr["Department"] = string.Empty;
dr["JobTitle"] = string.Empty;
dr["Manager"] = string.Empty;
dr["Name"] = string.Empty;
dt.Rows.Add(dr);
//dr = dt.NewRow();
//Store the DataTable in ViewState
ViewState["CurrentTable"] = dt;
Gridview1.DataSource = dt;
Gridview1.DataBind();
}
Dann erkläre ich meine Datatable wie diese
SetInitialRow();
DataTable dtCurrentTable = (DataTable)ViewState["CurrentTable"];
DataRow drCurrentRow = null;
Dann durchschlinge ich die aktiven Datensätze
for (int i = 0; i < MyVars.NoOfADRecords; i++)
{
Label empNo = (Label)Gridview1.Rows[i].Cells[1].FindControl("EmployeeNo");
Label displayName =(Label)Gridview1.Rows[i].Cells[2].FindControl("DisplayName");
Label dept =(Label)Gridview1.Rows[i].Cells[3].FindControl("Department");
Label jobTitle = (Label)Gridview1.Rows[i].Cells[1].FindControl("JobTitle");
Label manager = (Label)Gridview1.Rows[i].Cells[2].FindControl("Manager");
Label name = (Label)Gridview1.Rows[i].Cells[3].FindControl("Name");
drCurrentRow = dtCurrentTable.NewRow();
drCurrentRow["RowNumber"] = i;
empNo.Text = MyVars.ADEmployeeID[i];
displayName.Text = MyVars.ADName[i];
dept.Text = MyVars.ADDepartment[i];
jobTitle.Text = MyVars.ADJobtitle[i];
manager.Text = MyVars.ADManager[i];
name.Text = MyVars.ADName[i];
dtCurrentTable.Rows[i]["EmployeeNo"] = empNo.Text;
dtCurrentTable.Rows[i]["DisplayName"] = displayName.Text;
dtCurrentTable.Rows[i]["Department"] = dept.Text;
dtCurrentTable.Rows[i]["JobTitle"] = jobTitle.Text;
dtCurrentTable.Rows[i]["Manager"] = manager.Text;
dtCurrentTable.Rows[i]["Name"] = name.Text;
dtCurrentTable.Rows.Add(drCurrentRow);
ViewState["CurrentTable"] = dtCurrentTable;
}
So wie es jetzt ist es stürzt auf der ersten Schleife, wenn ich die i mit 0 gefällt dieses
(Label)Gridview1.Rows[0].Cells[1].FindControl("EmployeeNo");
Es funktioniert ersetzen, aber obwohl alle Datensätze angezeigt werden keine Daten. Wenn ich den Code debugge im empt.No.text etc .. alle haben Werte, also was mache ich falsch?
Vielen Dank Joe, sowohl Sie als auch die anderen Antworten waren korrekt und sehr hilfreich. – user616076