asp.net-TreeView 在用TreeView的TreeView_SelectedNodeChanged事件时,发现这是个选择时触发的事件有没有单击事件啊。。急,急,急网上找了很多都不行,人要崩溃了有好心人吗?帮帮我啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 就触发个“单击事件”和SelectedNodeChanged效果一样只不过是“单击”时在后台代码里向页面输出一段话就行了(不是选时) 是想在点checkbox的时候 让它postback么? 写段js, 实现postback, 另外 在treeview外面加个updatepanel 看着舒服点。treeview.Attributes["onclick"] ="var sender = (typeof(event.target) == 'undefined' ? event.srcElement : event.target); if(sender.tagName == 'INPUT' && sender.type == 'checkbox') __doPostBack('" + treeNotAssignedPermission.ClientID + "','');"; 上面有个地方不对 这个treeview.Attributes["onclick"] ="var sender = (typeof(event.target) == 'undefined' ? event.srcElement : event.target); if(sender.tagName == 'INPUT' && sender.type == 'checkbox') __doPostBack('" + treeview.ClientID + "','');"; using System;using System.Data;using System.Configuration;using System.Collections;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;public partial class _Default : System.Web.UI.Page{ private DataSet ds; protected void Page_Load(object sender, EventArgs e) { this.TreeView1.Attributes["onclick"] = "var sender = (typeof(event.target) == 'undefined' ? event.srcElement : event.target); if(sender.tagName == 'INPUT' && sender.type == 'checkbox') __doPostBack('" + this.TreeView1.ClientID + "','');"; if (!IsPostBack) { string sqlStr = "select UIN,Nick,JobTitle,sParentName,bOnline from dbo.UserBrief"; DBHelper db = new DBHelper(); ds = db.GetDataSet(sqlStr); //调用初始化TreeView方法 InitTree(TreeView1.Nodes, "0"); } } private void InitTree(TreeNodeCollection Nds, string parentId) { DataView dv = new DataView(); TreeNode tmpNd; dv.Table = ds.Tables["TreeView"]; //筛选出根节点 dv.RowFilter = "JobTitle=" + parentId; foreach (DataRowView drv in dv) { tmpNd = new TreeNode(); //tmpNd.SelectAction = TreeNodeSelectAction.Expand; tmpNd.Value = drv["UIN"].ToString(); //如果UIN大于10000说明是用户加上括号加上节点的URL if (Convert.ToInt16(drv["UIN"]) >= 10000) { //在线名字为蓝色,不在线名字为灰色 tmpNd.Text = "<div style='color:#5353FF'>" + drv["sParentName"].ToString() + "[" + drv["Nick"] + "]" + "</div>"; } else { tmpNd.Text = tmpNd.Text = drv["sParentName"].ToString(); } Nds.Add(tmpNd); //如果有子节点则调用本方法继续递归 DataView dvTmp = new DataView(); dvTmp.Table = ds.Tables["TreeView"]; dvTmp.RowFilter = "JobTitle=" + drv["UIN"].ToString(); if (dvTmp.Count != 0) { InitTree(tmpNd.ChildNodes, tmpNd.Value); } } } protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e) { }}的把他写到了Page_Load里面 不可以啊不可以啊不可以啊不可以啊不可以啊不可以啊不可以啊不可以啊不可以啊不可以啊 还是点击一次后进TreeView1_SelectedNodeChanged方法了在点就不进了 想实现点击节点时进 TreeView1_SelectedNodeChanged 方法而不是选择时 点击节点时你在加载节点的时候 给节点的text 上加上JS的click就可以了类似 public void CreateNode(TreeNode mynode, DataTable dt) { DataTable ds = dt.Copy(); DataView dvTree = ds.DefaultView; dvTree.RowFilter = "Q_ParentCode = " + mynode.Value; if (dvTree.Count != 0) { foreach (DataRowView Row in dvTree) { string name = Row["Q_Name"].ToString(); string Level = Row["Q_Level"].ToString(); TreeNode myNode = new TreeNode(); myNode.Value = Row["Q_ClassCode"].ToString(); myNode.Text = "<a herf='#'></a><img src=\"images\\i.gif\">" + name + "(" + Row["Q_Value"].ToString() + ")"; if (Row["Q_IsUsered"].ToString().Trim() != "True") { myNode.Text += " <font color='#ff0000'>[停用]</font>"; } //byte[] bTemp = System.Text.Encoding.GetEncoding("GB2312").GetBytes(name); //name = System.Web.HttpUtility.UrlEncode(bTemp); myNode.Text += " <a href='#' onclick=\"OpenQAddWin(this)\" srclink=\"QuestionAdd.aspx?code=" + myNode.Value.ToString() + "&name=" + name + "&level=" + Level + "\"><font color='#0000FF'>添加下级指标</font></a>"; myNode.Text += " <a href='#' onclick=\"OpenQEditWin(this)\" srclink=\"QuestionEdit.aspx?code=" + myNode.Value.ToString() + "&name=" + name + "&level=" + Level + "\"><font color='#0000FF'>编辑</font></a>"; if (Row["Q_IsChild"].ToString().Trim() != "True") { myNode.Text += " <a href='#' onclick=\"OpenAEditWin(this)\" srclink=\"AnswerEdit.aspx?code=" + myNode.Value.ToString() + "&name=" + name + "&level=" + Level + "\"><font color='#0000FF'>编辑答案</font></a>"; } CreateNode(myNode, dt); mynode.ChildNodes.Add(myNode); } } } 如何提取表的结构? asp.net 中能写javascript 代码吗?怎么写? 未能加载视图状态 请大帮忙装备一台价格在5K以下用.NET比较爽一点的机器。 新建一类库文件,想把一个很简单的公有函数封装,却出现命名空间问题?搜索了也没找到答案 asp.net如何取得弹出窗口的返回值? 帮忙开一下哦 又分免费送的哦 Ext.BorderLayout help!help!有关绑定问题 公司只有服务器是可以向外网(INTERNET的机子只能连内网,我怎么做才能通过公司服务器把我的ASP。NET网页发布到INTERNET?? gridview的字段值转换问题 正则表达式问题
只不过是“单击”时在后台代码里向页面输出一段话就行了(不是选时)
"var sender = (typeof(event.target) == 'undefined' ? event.srcElement : event.target); if(sender.tagName == 'INPUT' && sender.type == 'checkbox') __doPostBack('" + treeNotAssignedPermission.ClientID + "','');";
这个
treeview.Attributes["onclick"] =
"var sender = (typeof(event.target) == 'undefined' ? event.srcElement : event.target); if(sender.tagName == 'INPUT' && sender.type == 'checkbox') __doPostBack('" + treeview.ClientID + "','');";
using System.Data;
using System.Configuration;
using System.Collections;
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;public partial class _Default : System.Web.UI.Page
{
private DataSet ds;
protected void Page_Load(object sender, EventArgs e)
{
this.TreeView1.Attributes["onclick"] = "var sender = (typeof(event.target) == 'undefined' ? event.srcElement : event.target); if(sender.tagName == 'INPUT' && sender.type == 'checkbox') __doPostBack('" + this.TreeView1.ClientID + "','');";
if (!IsPostBack)
{
string sqlStr = "select UIN,Nick,JobTitle,sParentName,bOnline from dbo.UserBrief";
DBHelper db = new DBHelper();
ds = db.GetDataSet(sqlStr);
//调用初始化TreeView方法
InitTree(TreeView1.Nodes, "0");
}
} private void InitTree(TreeNodeCollection Nds, string parentId)
{
DataView dv = new DataView();
TreeNode tmpNd;
dv.Table = ds.Tables["TreeView"];
//筛选出根节点
dv.RowFilter = "JobTitle=" + parentId;
foreach (DataRowView drv in dv)
{
tmpNd = new TreeNode();
//tmpNd.SelectAction = TreeNodeSelectAction.Expand;
tmpNd.Value = drv["UIN"].ToString();
//如果UIN大于10000说明是用户加上括号加上节点的URL
if (Convert.ToInt16(drv["UIN"]) >= 10000)
{
//在线名字为蓝色,不在线名字为灰色 tmpNd.Text = "<div style='color:#5353FF'>" + drv["sParentName"].ToString() + "[" + drv["Nick"] + "]" + "</div>";
}
else
{
tmpNd.Text = tmpNd.Text = drv["sParentName"].ToString();
}
Nds.Add(tmpNd);
//如果有子节点则调用本方法继续递归
DataView dvTmp = new DataView();
dvTmp.Table = ds.Tables["TreeView"];
dvTmp.RowFilter = "JobTitle=" + drv["UIN"].ToString();
if (dvTmp.Count != 0)
{
InitTree(tmpNd.ChildNodes, tmpNd.Value);
}
}
}
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{ }
}
的把他写到了Page_Load里面 不可以啊不可以啊不可以啊不可以啊不可以啊不可以啊不可以啊不可以啊不可以啊不可以啊
在点就不进了
而不是选择时
{
DataTable ds = dt.Copy();
DataView dvTree = ds.DefaultView;
dvTree.RowFilter = "Q_ParentCode = " + mynode.Value;
if (dvTree.Count != 0)
{
foreach (DataRowView Row in dvTree)
{
string name = Row["Q_Name"].ToString();
string Level = Row["Q_Level"].ToString();
TreeNode myNode = new TreeNode();
myNode.Value = Row["Q_ClassCode"].ToString();
myNode.Text = "<a herf='#'></a><img src=\"images\\i.gif\">" + name + "(" + Row["Q_Value"].ToString() + ")";
if (Row["Q_IsUsered"].ToString().Trim() != "True")
{
myNode.Text += " <font color='#ff0000'>[停用]</font>";
}
//byte[] bTemp = System.Text.Encoding.GetEncoding("GB2312").GetBytes(name);
//name = System.Web.HttpUtility.UrlEncode(bTemp);
myNode.Text += " <a href='#' onclick=\"OpenQAddWin(this)\" srclink=\"QuestionAdd.aspx?code=" + myNode.Value.ToString() + "&name=" + name + "&level=" + Level + "\"><font color='#0000FF'>添加下级指标</font></a>";
myNode.Text += " <a href='#' onclick=\"OpenQEditWin(this)\" srclink=\"QuestionEdit.aspx?code=" + myNode.Value.ToString() + "&name=" + name + "&level=" + Level + "\"><font color='#0000FF'>编辑</font></a>";
if (Row["Q_IsChild"].ToString().Trim() != "True")
{
myNode.Text += " <a href='#' onclick=\"OpenAEditWin(this)\" srclink=\"AnswerEdit.aspx?code=" + myNode.Value.ToString() + "&name=" + name + "&level=" + Level + "\"><font color='#0000FF'>编辑答案</font></a>";
}
CreateNode(myNode, dt);
mynode.ChildNodes.Add(myNode);
}
}
}