导航控件的数据库绑定:
在页面中放置一个treeview控件,代码如下:
-------------------------------------------------------------------------------------------------------
<div >
<div style="z-index: 101; left: 8px; width: 109px; position: absolute; top: 0px;
height: 519px">
<asp:TreeView ID="TvNav" runat="server" ForeColor="LawnGreen" Height="117px" ImageSet="BulletedList3"
NodeIndent="10" ShowLines="True" Width="111px" Font-Size="Small">
</asp:TreeView>
</div>
</div>
----------------------------------------------------------------------------------------------------------------------
treeview的id为TvNav .
cs页中代码:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataView dv = drv("select * from Big_Nav_Table");
foreach (DataRowView datav in dv)
{
TreeNode tn = new TreeNode();
tn.Text = datav["Big_Nav"].ToString();//Big_Nav 为数据库中字段
tn.Value = datav["Big_Id"].ToString();//Big_Id 为数据库中字段
tn.Expanded = false;
tn.NavigateUrl = "~/user/list.aspx?check=" + datav["Big_Id"].ToString();//点击导航中值的跳转 页面
tn.Target = "rightFrame";//因为我用的是框架,所以有这个设置,让它在右框架中显示页面
TvNav.Nodes.Add(tn);
addchildnode(tn);
}
}
}
private void addchildnode(TreeNode tn)
{
int bid = Convert.ToInt32(tn.Value);
DataView dv = drv("select * from Smail_Nav_Table where Big_Id=" + bid + "");
foreach (DataRowView datav in dv)
{
TreeNode ctn = new TreeNode();
ctn.Text = datav["Smail_Nav"].ToString();
ctn.Value = datav["Smail_Id"].ToString();
ctn.NavigateUrl="~/user/list.aspx?check=" + datav["Smail_Id"].ToString();
ctn.Target = "rightFrame";
//ctn.SelectAction=none;
tn.ChildNodes.Add(ctn);
}
}
private DataView drv(string query)
{
string connstr = "Persist Security Info=false;Integrated Security=true;database=keyboli;Server=.\sqlexpress";
SqlConnection conn = new SqlConnection(connstr);
conn.Open();
SqlDataAdapter sda = new SqlDataAdapter(query, conn);
DataSet ds = new DataSet();
sda.Fill(ds, "tree");
return ds.Tables["tree"].DefaultView;
}