前台:
<asp:DropDownList ID="DdlSort" runat="server" Width="160px"></asp:DropDownList>后台
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack){ BindDropdownList(); }
}
public DataTable ExecuteDataTable(string CommandTxt)
{
string ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + HttpContext.Current.Server.MapPath(System.Configuration.ConfigurationManager.AppSettings["Data"]);
OleDbConnection Conn = new OleDbConnection(ConnectionString);
DataTable dataTable = new DataTable();
OleDbDataAdapter adapter = new OleDbDataAdapter(CommandTxt, Conn);
{
adapter.Fill(dataTable);
}
return dataTable;
}
protected void BindDropdownList()
{
DataTable dt = new DataTable();
try
{
dt = ExecuteDataTable("Select * from ClassInfo");
CreateLevelDropDown(this.DdlSort, dt);
}
catch (Exception) { }
}
private void CreateLevelDropDown(DropDownList ddlst, DataTable dt)
{
System.Collections.ArrayList allItems = new ArrayList();
DataRow[] rows = dt.Select("ClassPID=" + 0);
foreach (DataRow row in rows)
{
CreateLevelDropDownAssistant(dt, ref allItems, row, string.Empty);
}
ListItem[] items = new ListItem[allItems.Count];
allItems.CopyTo(items);
ddlst.Items.AddRange(items);
}
private void CreateLevelDropDownAssistant(DataTable dt, ref ArrayList items, DataRow parentRow, string curHeader)
{
ListItem newItem = new ListItem(curHeader + parentRow["ClassName"].ToString(), parentRow["ClassID"].ToString());
items.Add(newItem);
parentRow.Delete();
DataRow[] rows = dt.Select("ClassPID='" + newItem.Value + "'");
for (int i = 0; i < rows.Length - 1; i++)
{
CreateLevelDropDownAssistant(dt, ref items, rows[i], curHeader.Replace("┣", "┃").Replace("┗", "┣") + "┣");
}
if (rows.Length > 0)
{
CreateLevelDropDownAssistant(dt, ref items, rows[rows.Length - 1], curHeader.Replace("┣", "┃").Replace("┗", "┣") + "┗");
}
}数据库设计ClassID ClassPID ClassName为什么我始终绑定不了数据??????????
<asp:DropDownList ID="DdlSort" runat="server" Width="160px"></asp:DropDownList>后台
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack){ BindDropdownList(); }
}
public DataTable ExecuteDataTable(string CommandTxt)
{
string ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + HttpContext.Current.Server.MapPath(System.Configuration.ConfigurationManager.AppSettings["Data"]);
OleDbConnection Conn = new OleDbConnection(ConnectionString);
DataTable dataTable = new DataTable();
OleDbDataAdapter adapter = new OleDbDataAdapter(CommandTxt, Conn);
{
adapter.Fill(dataTable);
}
return dataTable;
}
protected void BindDropdownList()
{
DataTable dt = new DataTable();
try
{
dt = ExecuteDataTable("Select * from ClassInfo");
CreateLevelDropDown(this.DdlSort, dt);
}
catch (Exception) { }
}
private void CreateLevelDropDown(DropDownList ddlst, DataTable dt)
{
System.Collections.ArrayList allItems = new ArrayList();
DataRow[] rows = dt.Select("ClassPID=" + 0);
foreach (DataRow row in rows)
{
CreateLevelDropDownAssistant(dt, ref allItems, row, string.Empty);
}
ListItem[] items = new ListItem[allItems.Count];
allItems.CopyTo(items);
ddlst.Items.AddRange(items);
}
private void CreateLevelDropDownAssistant(DataTable dt, ref ArrayList items, DataRow parentRow, string curHeader)
{
ListItem newItem = new ListItem(curHeader + parentRow["ClassName"].ToString(), parentRow["ClassID"].ToString());
items.Add(newItem);
parentRow.Delete();
DataRow[] rows = dt.Select("ClassPID='" + newItem.Value + "'");
for (int i = 0; i < rows.Length - 1; i++)
{
CreateLevelDropDownAssistant(dt, ref items, rows[i], curHeader.Replace("┣", "┃").Replace("┗", "┣") + "┣");
}
if (rows.Length > 0)
{
CreateLevelDropDownAssistant(dt, ref items, rows[rows.Length - 1], curHeader.Replace("┣", "┃").Replace("┗", "┣") + "┗");
}
}数据库设计ClassID ClassPID ClassName为什么我始终绑定不了数据??????????
{
System.Collections.ArrayList allItems = new ArrayList();
DataRow[] rows = dt.Select("ClassPID=" + 0);
foreach (DataRow row in rows)
{
CreateLevelDropDownAssistant(dt, ref allItems, row, string.Empty);
}
ListItem[] items = new ListItem[allItems.Count];
allItems.CopyTo(items);
ddlst.Items.AddRange(items);
ddlst.DataBind();
}
{
if (!IsPostBack){ BindDropdownList(); }
}
public DataTable ExecuteDataTable(string CommandTxt)
{
string ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + HttpContext.Current.Server.MapPath(System.Configuration.ConfigurationManager.AppSettings["Data"]);
OleDbConnection Conn = new OleDbConnection(ConnectionString);
DataTable dataTable = new DataTable();
OleDbDataAdapter adapter = new OleDbDataAdapter(CommandTxt, Conn);
{
adapter.Fill(dataTable);
}
return dataTable;
}
protected void BindDropdownList()
{
DataTable dt = new DataTable();
try
{
dt = ExecuteDataTable("Select * from ClassInfo");
CreateLevelDropDown(this.DdlSort, dt);
}
catch (Exception) { }
}
问题出现在这里,,,下面的问题没有,始终找不到原因
在你的CreateLevelDropDown 試試
private void CreateLevelDropDown(DropDownList ddlst, DataTable dt)
{
ddlst.DataSource = dt;
ddlst.DataValueField = dt.Columns["DATA0"].ToString();//要給ddlst的value集合
ddlst.DataTextField = dt.Columns["DATA1"].ToString();//要給ddlst的text(顯示)集合
ddlst.DataBind();
}
{
DataTable dt = new DataTable();
try
{
dt = ExecuteDataTable("Select * from ClassInfo");
CreateLevelDropDown(dt);
}
catch (Exception) { }
}
private void CreateLevelDropDown(DataTable dt)
{
System.Collections.ArrayList allItems = new ArrayList();
DataRow[] rows = dt.Select("ClassPID=" + 0);
foreach (DataRow row in rows)
{
CreateLevelDropDownAssistant(dt, ref allItems, row, string.Empty);
}
ListItem[] items = new ListItem[allItems.Count];
allItems.CopyTo(items);
this.DdlSort.Items.AddRange(items);
this.DdlSort..DataBind();
}