写treeview遇到问题,请高手解决!
--------------------------------------------------------------------------------
未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。
源错误:
行 37:
行 38: TreeView1.Nodes.Clear();
行 39: DataRow [] drs = conf.ds.Tables["tab_BigClass"].Select("");
行 40: foreach( DataRow r in drs )
行 41: {
源文件: f:\bbs\tree.aspx.cs 行: 39
---------------------------------tree.aspx.cs----------------------------------
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using Microsoft.Web.UI.WebControls;
namespace Bbs
{
/// <summary>
/// tree1 的摘要说明。
/// </summary>
public class tree : System.Web.UI.Page
{
public Microsoft.Web.UI.WebControls.TreeView TreeView1;
public config conf = new config();
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!Page.IsPostBack)
{
conf.GetDs("select * from Big_Class","tab_BigClass");
conf.GetDs("select * from Small_Class","tab_SmallClass");
CreateNode();
}
}
public void CreateNode()
{
TreeView1.Nodes.Clear();
DataRow [] drs = conf.ds.Tables["tab_BigClass"].Select("");
foreach( DataRow r in drs )
{
TreeNode rootnode = new TreeNode();
rootnode.Text = r["BigClass_Name"].ToString();
rootnode.NodeData = r["BigClass_ID"].ToString();
// rootnode.NavigateUrl = "MainForm.aspx"+"?BID="+ r["bigclass_ID"].ToString() +"&SID=-1";
rootnode.Target = "mainFrame";
// rootnode.Expanded=true;
TreeView1.Nodes.Add(rootnode);
string parentid=r["BigClass_ID"].ToString();
CreateNode1(rootnode,parentid);
}
}
private void CreateNode1(TreeNode parentnode,string parentid)
{
DataRow [] drsr = conf.ds.Tables["tab_SmallClass"].Select("BigClass_ID = "+parentid);
foreach( DataRow rw in drsr )
{
TreeNode tempnode = new TreeNode();
tempnode.Text = rw["SmallClass_Name"].ToString();
tempnode.NodeData = rw["SmallClass_ID"].ToString();
tempnode.NavigateUrl = "MainForm.aspx"+"?BID="+ rw["BigClass_ID"].ToString() +"&SID="+ rw["SmallClass_ID"].ToString();
tempnode.Target = "mainFrame";
parentnode.Nodes.Add(tempnode);
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
---------------------------------config.cs部分---------------------------------
/// <summary>
/// 执行一个Sql语句返回一个DataSet对象
/// </summary>
/// <param name="str_Sql">sql语句</param>
/// <param name="str_Table">内存表名称</param>
/// <returns>DataSet对象</returns>
namespace Bbs
{
public class config:Page
{
public SqlConnection myConn;
public SqlCommand myCommand;
public SqlDataAdapter myAda;
public SqlDataReader myReader;
public DataSet ds;
public DataTable dt;
public DataRow dr;
public string FileName;
public int FileSize;
.......
public DataSet GetDs(string str_Sql,string str_Table)
{
open();
myAda = new SqlDataAdapter(str_Sql,myConn);
ds = new DataSet();
myAda.Fill(ds,str_Table);
myConn.Close();
return ds;
}
}
}
编译通过,但是在浏览器中查看就出现错误,请高手解决!
相关推荐
C# 解决双击TreeView表里checkbox本身Bug问题
一个WinForm的TreeView,某node的CheckBox初始状态为false,当双击这个node的checkbox时,会出现很奇怪的情况: 第一次双击checkbox,checkbox显示的状态会切换两次状态,unchecked-> checked-> unchecked,而AfterCheck事件仅触发一次,在AfterCheck事件中获取到的checkbox状态为checked。在这里checkbox状态已经和显示状态不一致了 以后每次双击,checkbox显示的状态会出现一次切换,AfterCheck也会触发一次,并且checkbox显示的状态和值的状态仍然保持相反。 除上面这个问题外,还有一点,当双击treeview 的checkbox后,如果再去单击或双击该界面中除这个treeview外的任何部分,系统会忽略第一次点击事件。举例来说,一个窗口中,有一个treeview,还有一个ok按钮,当我双击这个treeview的一个checkbox后,再去点那个ok按钮,第一次点击是没有任何作用的,第二次以及以后的点击才会有效,包括点击最大化,最小化,以及关闭这种系统按钮。 为了解决以上问题,我重写了TreeView控件,在不影响其它地方的前提下,能很好的解决以上问题。我的环境:.Net framework4.0 + VS2005 + Win7 编译通过,并付执行程序。-
treeview 局部刷新问题
NULL 博文链接:https://gaojiewyh.iteye.com/blog/697003
[资源分享]解决Win10下IE浏览器树形控件treeview无法显示的问题
解压到文档中的目录下,刷新页面即可显示,非VS中的控件,只用于显示。
一款自写的VB可分级的TreeView树形控件
一款自写的VB可分级的TreeView树形控件,API编程技术,钩子技术,自定义控件,完全超乎你的想象,很好的学习代码
treeview.SelectedNode总是获得第一个节点的解决办法
treeView1.SelectedNode.Text 无论点击任何子节点,调试后,只能获取第一个子节点的文本,这是为什么? 插入断点,跟踪,值都正确绑定了,不是这个问题。 有加 !isPostBack ,也不是这个问题。


