首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

TREEVIEW绑定以后不能显示

2011-12-24 
TREEVIEW绑定之后不能显示以下是代码,为什么可以运行,但是在网页之中显示不出来一个显示页面Default.aspx

TREEVIEW绑定之后不能显示
以下是代码,为什么可以运行,但是在网页之中显示不出来 

一个显示页面Default.aspx 


<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" > 
<head id="Head1" runat="server"> 
  <title>无标题页 </title> 
</head> 
<body> 
  <form id="form1" runat="server"> 
  <div> 
   
  <asp:TreeView ID="tvMenu" runat="server" ImageSet="Faq" ShowLines="True" ExpandDepth="0" Target="middle" > 
  <ParentNodeStyle Font-Bold="False" /> 
  <HoverNodeStyle Font-Underline="True" ForeColor="Purple" /> 
  <SelectedNodeStyle Font-Underline="True" HorizontalPadding="0px" VerticalPadding="0px" /> 
  <NodeStyle Font-Names="Tahoma" Font-Size="8pt" ForeColor="DarkBlue" HorizontalPadding="5px" 
  NodeSpacing="0px" VerticalPadding="0px" /> 
  </asp:TreeView> 
  
  </div> 
  </form> 
</body> 
</html> 


一个代码隐藏页Default.aspx.cs 


using System; 
using System.Data; 
using System.Configuration; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Web.UI.HtmlControls; 
using System.Data.SqlClient; 

public partial class _Default : System.Web.UI.Page 

  SqlConnection Conn = new SqlConnection("server=20090207-0309;database=checkthree;uid=sa;pwd=1111"); 
  
  DataSet ds; 
  protected void Page_Load(object sender, EventArgs e) 
  { 
  Conn.Open(); 
  this.createDataSet(); 
  Conn.Close(); 
  this.InitTree(tvMenu.Nodes, "0"); 
  } 
  private DataSet createDataSet() 
  { 
  ds = new DataSet(); 
  string sqlStr = "select * from Tree "; 
  SqlDataAdapter cmdSelect = new SqlDataAdapter(sqlStr, Conn); 
  cmdSelect.Fill(ds, "Tree"); 
  return ds; 
  } 
  protected void InitTree(TreeNodeCollection Nds, string parentId)//用递归方法动态生成节点 
  { 
  DataView dv = new DataView(); 
  TreeNode tmpNode; 
  dv.Table = ds.Tables["Tree"]; 
  dv.RowFilter = "pat_id=" + "'" + parentId + "'"; 
  foreach (DataRowView drv in dv) 
  { 
  tmpNode = new TreeNode(); 
  tmpNode.Value = drv["node_id"].ToString(); 
  tmpNode.Text = drv["naode_name"].ToString(); 
  tmpNode.NavigateUrl = drv["url"].ToString(); 
  Nds.Add(tmpNode); 


  this.InitTree(tmpNode.ChildNodes, tmpNode.Value); 
  } 
  } 

  



[解决办法]
this.treeview.databind();
[解决办法]
Web模式下什么都要DataBind();
treeview.databind();
[解决办法]
Page.DataBind() 与 Control.DataBind()
为 .aspx 页上的对象确定并设置了特定数据源后,必须将数据绑定到这些数据源。
您可以使用 Page.DataBind 或 Control.DataBind 方法将数据绑定到数据源。

这两种方法的使用方式很相似。主要差别在于:
调用 Page.DataBind 方法后,所有数据源都将绑定到它们的服务器控件。在显式调用 Web 服务器控件的 DataBind 方法或在调用页面级的 Page.DataBind 方法之前,不会有任何数据呈现给控件。通常,可以从 Page_Load 事件调用 Page.DataBind(或 DataBind)。

有关 DataBind 方法的详细信息,请参阅以下 .NET Framework SDK 文档:Control.DataBind 方法
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpr
[解决办法]
Conn.Open(); 
this.createDataSet(); 
Conn.Close(); 
this.InitTree(tvMenu.Nodes, "0"); 

把这部分代码放到Page.isPostBack()中

[解决办法]
在你执行操作后加上
this.bind();
//然后在代码里加上下面的:
private void bind()
{
dataset ds = ;//得到数据源,
gridview1.datasource = ds.table[0].default;
gridview1.datbind();
}
提醒:注意大小写。

热点排行