急啊,请教一个Ajax刷新的问题!

samfeng_2003 samfeng_2003 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我用了个 ajax.dll的组件

Web.Config里面的配置
<!--majicAjax-->
<configSections>
<section name="magicAjax" type="MagicAjax.Configuration.MagicAjaxSectionHandler, MagicAjax"/>
</configSections>
<magicAjax tracing="false" scriptPath="~/js">
<pageStore/>
</magicAjax>
<appSettings>
<add key="ConnectionString" value="data source=192.168.1.110;initial catalog=jzcm;user id=jzcm;password=jzcm" />
<add key="SystemName" value="合同管理系统" />
<add key="AppVersion" value="V1.0" />
</appSettings>
<system.web>
<!-- 对ajax支持 -->
<httpHandlers>
<add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax"/>
</httpHandlers>

然后在BLL层建立一ContractManage的类,里面定义了个方法
GetCCCTypeTree是得到一个Microsoft.Web.UI.WebControl 1.0的TreeView控件
[Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)]
public TreeNode GetCCCTypeTree( )
{
DataSet ds = new DataSet();
ds = dalContManage.GetCCCTRoot();

string ctID = ds.Tables[0].Rows[0]["CT_ID"].ToString();
string ctName = ds.Tables[0].Rows[0]["CT_Name"].ToString();

TreeNode tnRoot = new TreeNode();
tnRoot.Expanded = true;
tnRoot.Text = ctName;
tnRoot.NavigateUrl = @"ContManaTree.aspx?ctID="+ds.Tables[0].Rows[0]["CT_ID"].ToString();
tnRoot.ImageUrl = "../images/TreeImg/root.gif";
tnRoot.Target = "mainFrame";

LoadNextTree( tnRoot, null, ctID );

return tnRoot;
}

/// <summary>
/// 递归得到下一级的所有合同类型节点
/// </summary>
/// <param name="tnParent">树节点控件</param>
/// <param name="TreeType">种类</param>
/// <param name="parentID">父节点</param>
/// <returns></returns>
public TreeNode LoadNextTree(TreeNode tnParent, string TreeType, string parentID)
{
DataSet dsChild;
if(null != TreeType)//根节点加载
{
dsChild = dalContManage.GetCCCTRoot();
}
else//子节点加载(用于递归调用时候)
{
dsChild = dalContManage.GetCCCTChild( parentID );
}

if(null == dsChild)//判断是否有子节点
{
return tnParent;
}
else
{
foreach(DataRow dr in dsChild.Tables[0].Rows)
{
TreeNode tnChild = new TreeNode();
tnChild.Text = dr["CT_Name"].ToString().Trim();
tnChild.Target = "mainFrame";
object oFlag = dalContManage.IfExCCCTChild( dr["CT_ID"].ToString().Trim() );
if( null != oFlag )
{
tnChild.ImageUrl = "../images/TreeImg/folder.gif";
tnChild.SelectedImageUrl = "../images/TreeImg/folderopen.gif";
}
else
{
tnChild.ImageUrl = "../images/TreeImg/file.gif";
}
//对于定位页面的设定
if(null != dr["CT_Name"])
{
tnChild.NavigateUrl = @"ContManaTree.aspx?ctID="+dr["CT_ID"].ToString();
}
tnParent.Nodes.Add(tnChild);
LoadNextTree(tnChild, null, dr["CT_ID"].ToString().Trim());
}
return tnParent;
}
}

里面有两个方法是DAL层的,但是应该不关事,是正确的

然后,我在web层里面调用
前台的javascript
<script language="javascript">
<!--
function tvCCCTypeResult()
{
ContractManage.GetCCCTypeTree(get_tree_Result_CallBack);
}

function get_tree_Result_CallBack(response)
{
if (response.value != null)
{
   
//debugger;
var tvTree = parent.leftFrame.document.getElementById("tvCCCType");
var tt = parent.leftFrame.document.getElementById("TextBox1");

var ds = response.value;
if(ds != null )
{  
tvTree.Nodes.Add( "123","234");
    tvTree.Nodes.Add( ds );
}
}
}

后台语句

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面

Ajax.Utility.RegisterTypeForAjax(typeof(BLL.ContractManage.ContractManage));
if ( !IsPostBack )
{
InitPage();
Button1.Attributes.Add("onclick","tvCCCTypeResult();");

}

但是不行,我用了个TextBox1来测试,javascript语句是对的!但是为什么tvTree.Nodes.Add就是刷新不了呢?

}
...全文

相关推荐

评论 8
收藏 已收藏
分享
返回顶部
samfeng_2003
.NET社区 62,271 成员 668,968 内容