还有就是怎么样在代码中引用NavigateUrl和Target这里个属性!也就是我在程序的page_load执行的时候不设置这两个属性!等到获得某个数据之后再设置这两个属性!
解决方案 »
- GridView绑定时空格字符消失问题
- 求助~IIS不能访问ashx文件
- 有人不用服务器控件开发么?有人愿意提供小的代码参考下么?
- 如何在本地打开ASP.NET网站?
- |M| 第二贴:网上支付的问题 <form id="form1" runat="server"> <form id="form1" action="https://www.99bill.com/.." method="post">
- 请教Castle IOC自动装配的数据性能问题
- ASP.NET中<%@ import Namespace="System.Data.OracleClient" %>出错
- 权限不足?应该怎么解决?
- 各位大虾,快救火,.NET 下怎样引用长组件名
- 现在有什么asp.net做的网站??
- 请wacle和luoqing来领分,刚才给分没有成功,帖子却结了
- 关于地址栏传送变量问题
<%@ Import Namespace = "System.IO" %>
<%@ Import Namespace = "System.Data.SqlClient" %>
<%@ Import Namespace = "System.Data" %>
<%@ Import Namespace = "System.Web.UI" %>
<%@ Import Namespace = "System.Web" %>
<%@ Import Namespace = "Microsoft.Web.UI.WebControls" %>
<%@ Register TagPrefix = "iewc" Namespace="Microsoft.Web.UI.WebControls" Assembly="Microsoft.Web.UI.WebControls, Version=1.0.2.226, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
<HTML>
<HEAD>
<title>treeview</title>
<script runat="server" language="vb">
Protected WithEvents TreeView1 As Microsoft.Web.UI.WebControls.TreeView
'TABLE Nodes : ID, Nod_Id_1, Nod_Id_2, Nod_Id_3, Nod_Tit, Nod_Url, Nod_Lev, Nod_Dept, Nod_Auth, Nod_Date, Nod_MenDim myConn As SQLConnection
Dim mySQLString As String = "SELECT * FROM Nodes Where Nod_Id_1 > 1 order by Nod_Id_1,Nod_Id_2,Nod_Id_3"Sub Page_Load(Src As Object, E As EventArgs)
DBBind
End SubSub DataConn
myConn = New SQLConnection(Application("myweb_ConnectionString"))
End SubSub DBBind
Dim Nodes_1 As TreeNode
Dim Nodes_2 As TreeNode
Dim Nodes_3 As TreeNode
Dim DRNodes As DataRow
myConn = New SQLConnection(Application("web_ConnectionString")) Dim myAdapter As New SQLDataAdapter(mySQLString,myConn)
Dim myDataSet As New DataSet()
myAdapter.Fill(myDataSet,"Nodes")
'myDataGrid.DataSource = myDataSet
'myDataGrid.DataBind() For Each DRNodes In myDataSet.Tables("Nodes").Rows
If DRNodes("Nod_Id_2") = 0 Then
Nodes_1 = New TreeNode()
Nodes_1.Text = DRNodes("Nod_Tit")
TreeView11.Nodes.Add(Nodes_1)
Else
If DRNodes("Nod_Id_3") = 0 Then
Nodes_2 = New TreeNode()
Nodes_2.Target = "main"
Nodes_2.Navigateurl = DRNodes("Nod_Url")
Nodes_2.Text = DRNodes("Nod_Tit")
Nodes_1.Nodes.Add(Nodes_2)
Else
Nodes_3 = New TreeNode()
Nodes_3.Target = "main"
Nodes_3.Navigateurl = DRNodes("Nod_Url")
Nodes_3.Text = DRNodes("Nod_Tit")
Nodes_2.Nodes.Add(Nodes_3)
End If
End If
Next
myDataSet.Dispose()
myConn.Close()
myConn.Dispose()
End Sub
</script>
<meta http-equiv="Content-Language" content="zh-cn">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="Microsoft Border" content="none"><base target="main"></HEAD>
<body bgproperties="fixed" topmargin="0"><center>
<form runat="server">
<asp:DataGrid id="MyDataGrid" runat="server" ></asp:DataGrid>
<asp:Table id="Table1" runat="server" Height="100%" Width="100%">
<asp:TableRow height="20px">
<asp:TableCell style="background-color: #1D3752">
<font face="宋体-18030" size="2" color="#DCEEFF" >请选择查询项目</font><font size="2">
</font>
</asp:TableCell>
</asp:TableRow>
<asp:TableRow height="100%">
<asp:TableCell>
<iewc:TreeView id="TreeView11" runat="server"
Height="100%" width="100%" BackColor="#F0F8FF" Expanded="true">
</iewc:TreeView>
</asp:TableCell>
</asp:TableRow>
</asp:Table>
</form>
</center></body>
</HTML>
TreeNode node=TreeView1.GetNodeFromIndex("0");
node.Target="RightFrameName";
node.NavigateUrl="DataGridPage.aspx?para=aaa";RightFrame:
str=Request.QueryString["para"];
BindDataGrid(str); //根据参数绑定DataGrid设置了TreeNode的NavigateUrl和Target,点击时回自动更新右边框架
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 hardware.et
{
/// <summary>
/// contents 的摘要说明。
/// </summary>
public class contents : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label Label1;
protected Microsoft.Web.UI.WebControls.TreeView TreeView2;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
string strTreeName = "TreeView2";
string strRef = Page.GetPostBackEventReference(TreeView2);
string strScript = "<script language=\"JavaScript\"> \n" + "<!-- \n" + " function initTree() { \n" +" " + strTreeName + ".onSelectedIndexChange = function() { \n" + "if (event.oldTreeNodeIndex != event.newTreeNodeIndex) \n" + "this.queueEvent('onselectedindexchange', event.oldTreeNodeIndex + ',' + event.newTreeNodeIndex); \n" + "window.setTimeout('" + strRef.Replace("'","\\'") + "', 0, 'JavaScript'); \n" + " } \n" + " } \n" + "// --> \n" + "</script>";
Page.RegisterClientScriptBlock("InitTree",strScript);
if (!Page.IsPostBack)
{
TreeView2.Attributes.Add("onclick","return false;");
TreeView2.Attributes.Add("ondblclick","TreeView2.getTreeNode(TreeView2.clickedNodeIndex).setAttribute('Expanded','True');");
} }
private void TreeView2_Expand(object sender, Microsoft.Web.UI.WebControls.TreeViewClickEventArgs e)
{
foreach(TreeNode node in TreeView2.Nodes)
node.Expanded=false;
TreeView2.GetNodeFromIndex(e.Node).Expanded=true;
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.TreeView2.Load += new System.EventHandler(this.Page_Load);
this.TreeView2.Expand += new Microsoft.Web.UI.WebControls.ClickEventHandler(this.TreeView2_Expand);
this.TreeView2.SelectedIndexChange += new Microsoft.Web.UI.WebControls.SelectEventHandler(this.TreeView2_SelectedIndexChange);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void TreeView2_SelectedIndexChange(object sender, Microsoft.Web.UI.WebControls.TreeViewSelectEventArgs e)
{
this.Session["nodetext"]=null;
this.Session["sqlStr"]=null;
TreeNode node=TreeView2.GetNodeFromIndex(e.NewNode);
this.Session["nodetext"]=node.Text;
string fathernodetext=null;
TreeNode parent_node;
if(node.Parent is TreeNode)
{
parent_node=(TreeNode)node.Parent;
fathernodetext=parent_node.Text;
}
switch(fathernodetext)
{
case "台式机":
this.Session["sqlStr"]="DATABASE=taishiji;SERVER=localhost;UID=sa;PWD=800326";
break;
case "硬盘":
this.Session["sqlStr"]="DATABASE=yingpan;SERVER=localhost;UID=sa;PWD=800326";
break;
}
Label1.Text=node.Text;
}
}
}
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 System.Data.SqlClient;namespace hardware.et
{
/// <summary>
/// main 的摘要说明。
/// </summary>
public class main : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.DataGrid grid;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(this.Session["nodetext"]!=null && this.Session["sqlStr"]!=null)
{
createdatasource(1);
}
}
//绑定datagrid的函数
protected void createdatasource(int current_page)
{
string str_table_name,str_column_list,str_order_column,str_condition;
//查询的表名
//str_table_name="employees";
str_table_name=this.Session["nodetext"].ToString();
//this.Session["nodetext"]=null;
//返回的列名列表
//str_column_list="employeeid,firstname,lastname,title";
str_column_list=" ID,型号,配置,报价";
//排序列的列名
str_order_column="ID";
//查询的表件
//str_condition="employeeid>0";
str_condition="ID>0";
string strConn =this.Session["sqlStr"].ToString();
//this.Session["sqlStr"]=null;
SqlConnection conn = new SqlConnection(strConn);
//声明执行存储过程的SqlCommand
SqlCommand scd_sel=new SqlCommand("up_custompage",conn);
scd_sel.CommandType=CommandType.StoredProcedure;
//给存储过程的参数赋值
SqlParameter sp_temp;
sp_temp=scd_sel.Parameters.Add("@vc_order_column_name",SqlDbType.VarChar,100);
sp_temp.Direction=ParameterDirection.Input;
sp_temp.Value=str_order_column;
sp_temp=scd_sel.Parameters.Add("@vc_select_column_list",SqlDbType.VarChar,100);
sp_temp.Direction=ParameterDirection.Input;
sp_temp.Value=str_column_list;
sp_temp=scd_sel.Parameters.Add("@vc_select_table_list",SqlDbType.VarChar,100);
sp_temp.Direction=ParameterDirection.Input;
sp_temp.Value=str_table_name;
sp_temp=scd_sel.Parameters.Add("@vc_condition",SqlDbType.VarChar,100);
sp_temp.Direction=ParameterDirection.Input;
sp_temp.Value=str_condition;
sp_temp=scd_sel.Parameters.Add("@page_size",SqlDbType.Int);
sp_temp.Direction=ParameterDirection.Input;
sp_temp.Value=grid.PageSize;
sp_temp=scd_sel.Parameters.Add("@current_page",SqlDbType.Int);
sp_temp.Direction=ParameterDirection.Input;
sp_temp.Value=current_page;
sp_temp=scd_sel.Parameters.Add("@total1",SqlDbType.Int);
sp_temp.Direction=ParameterDirection.Output;
//执行存储过程
SqlDataAdapter sda=new SqlDataAdapter();
sda.SelectCommand=scd_sel;
if (conn.State==ConnectionState.Closed)
conn.Open();
DataSet ds=new DataSet();
sda.Fill(ds,"tb1");
conn.Close();
//设置VirtualItemCount属性
grid.VirtualItemCount=(int)scd_sel.Parameters["@total1"].Value;
//绑定数据源
grid.DataSource=ds.Tables["tb1"].DefaultView;
grid.DataBind();
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.grid.ItemCreated += new System.Web.UI.WebControls.DataGridItemEventHandler(this.grid_ItemCreated);
this.grid.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.PageIndexChanged);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion
//datagrid的ItemCreated事件,用于定制分页导航行
private void grid_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
ListItemType elemType = e.Item.ItemType;
//定制分页导航行,样式为[1] [2] 第 3 页 [4]
if (elemType == ListItemType.Pager)
{
TableCell pager = (TableCell) e.Item.Controls[0];
for (int i=0; i<pager.Controls.Count; i+=2)
{
Object o = pager.Controls[i];
if (o is LinkButton)
{
LinkButton h = (LinkButton) o;
h.Text = "[ " + h.Text + " ]";
}
else
{
Label l = (Label) o;
l.Text = "第" + l.Text + "页";
}
}
}
}
//页选中(分页)事件
public void PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
grid.CurrentPageIndex = e.NewPageIndex;
//页码值是从零开始的,所以要加一
createdatasource(grid.CurrentPageIndex+1);
}
}
}
你说的那个参数的是什类型的?数据绑定怎么调用那个参数的?
rootnode.Target = "main"
node=TreeView1.GetNodeFromIndex("0.0");
node.Target="RightFrameName";
ParentNodeText="";
if(node.Parent is TreeNode)
ParentNodeText=((TreeNode)node.Parent).Text;
node.NavigateUrl="DataGridPage.aspx?text=" + node.Text + "&ptext=" + ParentNodeText;右边框架页面得到所传参数
if(Request.QueryString["text"]!=null)
{
string NodeText=Request.QueryString["text"].ToString();
string ParentNodeText=Request.QueryString["ptext"].ToString();
}