导航控件的数据库绑定:
在页面中放置一个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; }
|