我在母版页里定义了TreeView的changed方法,里边是跳转,新建页引用后,每次点击TreeView的节点后,页面跳转到另一页,TreeView又重新初始化了一次,我想让TreeView记录当先选择的节点,而下次加载之后,保存原来的样子,如果,很难,那么,就简单点,如何获取当前点击的节点呢?
解决方案 »
- 用了AjaxControlToolkit后遇见的怪问题,路过的进来看下,帮顶求解决
- 请问下大家做报表都用什么平台呢?谢谢
- 同时生成单据和单据明细,如何插入数据库?
- ftp 连接服务器的端口号
- 一篇字数很多的文章用什么实现分页比较好?
- 提问一个关于Viewstate的问题,很奇怪!
- 请教Fckeditor如何修改其工具按钮?
- System.Web.HttpContext.Current.Request.Files.Count
- 最后20分了,帮忙解决一个sql查询问题
- asp.net(for vb)自定义服务器控件a.ascx中如何调用b.aspx作为模式窗体,并得到b.aspx返回的值?
- 传输加密
- 求DES加密程序
{
if (this.TreeView1.SelectedNode != null)
{
string s= this.TreeView1.SelectedNode.Value.Trim();
}
}
NavigateUrl = "javascript:test("+节点.Value+")";function test(str)
{
document.getElementById("txt").value=str;
} <asp:TreeView ID="TreeView1" runat="server" onclick="javascript:client_OnTreeNodeChecked();" NodeIndent="10" ShowCheckBoxes="All" ShowLines="True">
function checkParent (obj)
{
while(obj != null)
{
}
}
实现左边TreeView结构,右边动态变动,可以么!
<asp:TreeView ID="trv_menu" runat="server" Font-Bold="False" Font-Size="12px" Width="150px"
OnSelectedNodeChanged="trv_menu_SelectedNodeChanged" ShowLines="True" AutoGenerateDataBindings="False">
<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>
<asp:Label ID="lbl_nodeText" runat="server" Text="Label" Visible="false"></asp:Label>
<asp:Label ID="lbl_nodeValue" runat="server" Font-Size="12px" Visible="false"></asp:Label>
C#代码:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//查找根结点的子节点
bindtree("0");//传入第0个SJBMBH开始遍历根节点 }
}
/// <summary>
/// 递归遍历指定节点下的子节点
/// </summary>
/// <param name="nd">参数,接收节点对象</param>
private void bindnode(TreeNode nd)
{
DataSet ds = rygl.Getdata(nd.Value);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
TreeNode node = new TreeNode();
node.Text = ds.Tables[0].Rows[i]["BMMC"].ToString();
node.Value = ds.Tables[0].Rows[i]["BMBH"].ToString(); nd.ChildNodes.Add(node);//把指定节点添加到控件中 bindnode(node);
}
}
/// <summary>
/// 查找根节点(parent_ID为0的节点)的子节点
/// </summary>
/// <param name="parent_ID">参数,接收根节点ID</param>
private void bindtree(string SJBMBH)
{
DataSet ds = rygl.Getdata(SJBMBH);
if (ds.Tables[0].Rows.Count > 0)
{
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
//这是在找数据库中的节点
TreeNode node = new TreeNode(ds.Tables[0].Rows[i]["BMMC"].ToString(), ds.Tables[0].Rows[i]["BMBH"].ToString());
this.trv_menu.Nodes.Add(node);//把指定节点添加到控件中 bindnode(node);
}
} } protected void trv_menu_SelectedNodeChanged(object sender, EventArgs e)
{
string str_nodeText = this.trv_menu.SelectedNode.Text;
string str_nodeValue = this.trv_menu.SelectedNode.Value;
this.lbl_nodeText.Text = str_nodeText;
this.lbl_nodeValue.Text = str_nodeValue;
}
public DataSet Getdata(string SJBMBH)
{
using (SqlserverHelper helper = new SqlserverHelper())
{
StringBuilder strSql = new StringBuilder();
strSql.Append("select * from XT_BMB where SJBMBH=@SJBMBH and SFSY=@SFSY");
SqlParameter[] parameters ={
new SqlParameter("@SJBMBH",SqlDbType.Int),
new SqlParameter("@SFSY",SqlDbType.Int)
};
parameters[0].Value = SJBMBH;
parameters[1].Value = 1;
DataSet ds = new DataSet();
ds = helper.ExecuteDataSet(strSql.ToString(), parameters);
return ds;
}
}
这个你自己改成自己的就可以了。
数据库中数据表的结构是这样的:
USE [glsgqy]
GO
/****** 对象: Table [dbo].[XT_BMB] 脚本日期: 08/04/2010 10:11:24 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[XT_BMB](
[SJBMBH] [int] NULL,
[BMBH] [int] IDENTITY(1,1) NOT NULL,
[BMMC] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[SFSY] [int] NULL,
[BGS] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
[DH] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL,
[YJ] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL,
[CZ] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL,
[DJRQ] [datetime] NULL,
[BZ] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL,
[BMFZR] [nvarchar](6) COLLATE Chinese_PRC_CI_AS NULL,
CONSTRAINT [PK_XT_BMB] PRIMARY KEY CLUSTERED
(
[BMBH] ASC
)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]GO
SET ANSI_PADDING OFF
我的数据库叫做glsgqy,数据表叫做XT_BMB,好了,现在是非常完善了