关于Ajax刷新Treeview控件中内容的问题
我所获取的数据格式如下:
学校1
学生1
学生2
学校2
学生1
学生2
学生3
学校3
学生1
其中学校1,2,3父节点用ajax刷新不会变化不会有学校4的出现,但他们的子节点的个数是有可能变化的,也就是说学校1的子节点刷新后可能会变成学生1、学生2、学生3,也有可能变少;
我的代码有异常,我还是贴出来给大家看看,希望有大家能指点我的错误之处,或是给个其他的方法给我,不是光说要附加有源代码,谢谢!
我的代码:
Default.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
Ajax.Utility.RegisterTypeForAjax(typeof(Default));
}
[Ajax.AjaxMethod]
public string GetAjaxInfo()
{
string s = string.Empty;
try
{
TreeView tv = new TreeView();
tv.Nodes.Clear();
tv.Width = 300;
this.CreateTreeView(tv, this.CreateTestData());//获取treeview中绑定的数据
System.Text.StringBuilder strb = new System.Text.StringBuilder();
System.IO.StringWriter sw = new System.IO.StringWriter(strb);
System.Web.UI.HtmlTextWriter htw = new HtmlTextWriter(sw);
tv.RenderControl(htw);
s = strb.ToString();
}
catch (Exception en)
{
Response.Write(en.Message);
}
return s;//最后就是返回这个html啦
}
Default.aspx
<head runat="server">
<title>无标题页 </title>
<script language="javascript" type="text/javascript">
function LoadGrid()
{
var bb=document.getElementById("Td1");
bb.innerHTML=Default.GetAjaxInfo().value;
window.setTimeout(LoadGrid,10000);
}
</script>
</head>
<body onload="LoadGrid()">
<form id="form1" runat="server">
<div>
<table border="0">
<tr>
<td id="Td1" style="width: 1024px"> </td>
</tr>
</table>
</div>
</form>
</body>
执行到这里:tv.RenderControl(htw);
就发生错误:"未将对象引用设置到对象的实例。"
希望高手能帮帮我解决一下这个问题,谢谢了!