如动网论坛,比如一级论坛为aaa,此论坛下属论坛为bbb,ccc,ddd一级论坛有个+号,点击后将展开bbb,ccc,ddd,并且+号变成-号;再点击-号时将收缩表格,隐藏bbb,ccc,ddd等表格。这个东东使用asp和javascript结合可以实现,现求ASP.NET实现的树型表格的代码,谢谢! 最好为vb的代码。昨天有网友说可以通过TreeView来实现,但是还没有看到这种表格的例子。期待高手指教!
解决方案 »
- iframe 中有一个隐藏的Button,怎么在父页面中控制Button的click事件
- 关于一个简单的DOS命令问题,请教了!
- 此页当前禁用指定的显示模式。请确保为当前用户启用了个性化设置。
- 问个关于JS,自动图片添加,网也卡的问题。
- 怎么样在文本框里显示时间,要求是时时更新的。如20:20:20是走动的
- Web.config设置问题(问题描述有点长,请大家耐心点,帮帮忙,谢谢)
- 请问如何选择表里某种排序的第x条记录
- 怎样获取所有select控件的所有值,高手进
- 关于用户控件获取值的问题
- 及!请问在vs.net安装中,组件更新的win2000 service pack 2不能更新,怎么办? Thanks
- 动态生成datatable,添加记录的问题
- 急,asp.net中回车事件如何定位到登录按钮上(如果不用js)
public class Tree : System.Web.UI.Page
{
protected Microsoft.Web.UI.WebControls.TreeView TreeView1;
string strcn = "workstation id=PROJECT3;packet size=4096;user id=sa;data source=\"PROJECT3\\PROJECT" +
"3\";persist security info=False;initial catalog=tree; min pool size=2;max pool size=5"; private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
SqlConnection _Sqlconnection1 = new SqlConnection(strcn);
string str1 = "select * from t_tree";
_Sqlconnection1.Open();
SqlCommand _Sqlcommand1 = new SqlCommand(str1,_Sqlconnection1);
SqlDataAdapter dr=new SqlDataAdapter(_Sqlcommand1);
DataSet da1=new DataSet();
dr.Fill(da1);
//ViewState 获取状态信息的字典,
//这些信息使您可以在同一页的多个请求间保存和还原服务器控件的视图状态。
this.ViewState["ds"]=da1;
_Sqlconnection1.Close();
Gettreestruct(0,(TreeNode)null);
}
/// <summary>
/// 导航树的递归算法
/// </summary>
/// <param name="id"></param>
/// <param name="t1"></param>
public void Gettreestruct(int id,TreeNode t1)
{
DataSet da =(DataSet)this.ViewState["ds"];
DataView trr = new DataView(da.Tables[0]);
trr.RowFilter="[parentid]="+id;
foreach(DataRowView row in trr)
{
TreeNode nod=new TreeNode();
if(t1==null)
{
nod.Text=row["mytext"].ToString();
TreeView1.Nodes.Add(nod);
//Expanded属性决定是否展开树
nod.Expanded = true;
Gettreestruct(Int32.Parse(row["nodeid"].ToString()),nod);
}
else
{
nod.Text =row["mytext"].ToString();
t1.Nodes.Add(nod);
nod.Expanded = true;
Gettreestruct(Int32.Parse(row["nodeid"].ToString()),nod);
} } }
两个表关联存放父子模块的情况:
public void LoadTree()
{
DataSet da =(DataSet)this.ViewState["ds"];
int count=0;
foreach(DataRow row in da.Tables["Main"].Rows)
{
TreeNode nod=new TreeNode() ;
nod.Text=row["MainName"].ToString();
this.TreeView1.Nodes.Add(nod); DataView trr = new DataView(da.Tables["Sub"]);
trr.RowFilter="MainID='"+row["MainID"].ToString()+"'"; for(int i=0;i<trr.Count;i++)
{
TreeNode nod1=new TreeNode();
nod1.Text=trr[i]["SubName"].ToString();
this.TreeView1.Nodes[count].Nodes.Add(nod1);
}
count++;
}
}