我想用DATALIST做一个树型目录 但是嵌套了DATALIST了以后 里面这个DATALIST没有任何数据,
<asp:datalist id="DataListMenuSort" runat="server" DataKeyField="Number" >
<ItemTemplate>
<SPAN class=menu id='<%# "zhugan_"+int.Parse(DataBinder.Eval(Container, "DataItem.Number").ToString()) %>' onclick='showdiv(<%# int.Parse(DataBinder.Eval(Container, "DataItem.Number").ToString()) %>)'>
<IMG height=18 src="../images/t_plus.gif" width=16 align=absMiddle name='<%# "image"+int.Parse(DataBinder.Eval(Container, "DataItem.Number").ToString()) %>'><IMG src="../images/close.gif" align=absMiddle border=0 name='<%# "img"+int.Parse(DataBinder.Eval(Container, "DataItem.Number").ToString()) %>'>
<%# DataBinder.Eval(Container, "DataItem.Title") %>
</SPAN>
<DIV id='<%# "subtree"+int.Parse(DataBinder.Eval(Container, "DataItem.Number").ToString()) %>' style="DISPLAY: none" noWrap>
<asp:DataList id="DataListMenu" runat="server">
<ItemTemplate>
<IMG src="../images/line_05.gif" align="absMiddle"><A href='<%# DataBinder.Eval(Container, "DataItem.FileName") %>'><%# DataBinder.Eval(Container, "DataItem.Title") %></A><BR>
</ItemTemplate>
</asp:DataList>
</DIV>
</ItemTemplate>
</asp:datalist>后台代码:
protected void Page_Load(object sender, EventArgs e)
{
// 在此处放置用户代码以初始化页面
//Components.Rights.CheckLogin();
//--------------------------------------------------------------------------
Dbconn.Database_Sql data = new Dbconn.Database_Sql();//数据库操作类
//data.RunSql("select Rights from TbUser where id=" + Session["userid"], out userRights);
if (userRights == "") userRights = "0";
SqlDataReader dr;
string SqlStr = "select * from TbioaRoleRightsType where mod<>'X' and exists (select number from TbioaRoleRights where TypeNumber=TbIoaRoleRightsType.number and FileName<>'')";
data.RunSql(SqlStr, out dr);
//设置网页栏目
DataListMenuSort.DataSource = dr;
DataListMenuSort.DataBind();
//释放对象
dr.Close();
data.Dispose();
//-------------------------------------------------------------------------- }
private void DataListMenuSort_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
{
DataList DataListMenu=(DataList) e.Item.FindControl("DataListMenu"); Dbconn.Database_Sql data = new Dbconn.Database_Sql();//数据库操作类
SqlDataReader dr;
string SqlStr="select * from TbioaRoleRights where TypeNumber='"+DataListMenuSort.DataKeys[(int)e.Item.ItemIndex]+"' and FileName<>'' and mod<>'X'";
Response.Write(SqlStr);
data.RunSql(SqlStr,out dr); //设置网页栏目
DataListMenu.DataSource=dr;
DataListMenu.DataBind(); //释放对象
dr.Close();
data.Dispose();
}
} }
而且在 Page_Load 里面不能找到潜逃的DataListMenu,把DataListMenu放在DATALIST的外面就能找到,这个是怎么回事啊!!
<asp:datalist id="DataListMenuSort" runat="server" DataKeyField="Number" >
<ItemTemplate>
<SPAN class=menu id='<%# "zhugan_"+int.Parse(DataBinder.Eval(Container, "DataItem.Number").ToString()) %>' onclick='showdiv(<%# int.Parse(DataBinder.Eval(Container, "DataItem.Number").ToString()) %>)'>
<IMG height=18 src="../images/t_plus.gif" width=16 align=absMiddle name='<%# "image"+int.Parse(DataBinder.Eval(Container, "DataItem.Number").ToString()) %>'><IMG src="../images/close.gif" align=absMiddle border=0 name='<%# "img"+int.Parse(DataBinder.Eval(Container, "DataItem.Number").ToString()) %>'>
<%# DataBinder.Eval(Container, "DataItem.Title") %>
</SPAN>
<DIV id='<%# "subtree"+int.Parse(DataBinder.Eval(Container, "DataItem.Number").ToString()) %>' style="DISPLAY: none" noWrap>
<asp:DataList id="DataListMenu" runat="server">
<ItemTemplate>
<IMG src="../images/line_05.gif" align="absMiddle"><A href='<%# DataBinder.Eval(Container, "DataItem.FileName") %>'><%# DataBinder.Eval(Container, "DataItem.Title") %></A><BR>
</ItemTemplate>
</asp:DataList>
</DIV>
</ItemTemplate>
</asp:datalist>后台代码:
protected void Page_Load(object sender, EventArgs e)
{
// 在此处放置用户代码以初始化页面
//Components.Rights.CheckLogin();
//--------------------------------------------------------------------------
Dbconn.Database_Sql data = new Dbconn.Database_Sql();//数据库操作类
//data.RunSql("select Rights from TbUser where id=" + Session["userid"], out userRights);
if (userRights == "") userRights = "0";
SqlDataReader dr;
string SqlStr = "select * from TbioaRoleRightsType where mod<>'X' and exists (select number from TbioaRoleRights where TypeNumber=TbIoaRoleRightsType.number and FileName<>'')";
data.RunSql(SqlStr, out dr);
//设置网页栏目
DataListMenuSort.DataSource = dr;
DataListMenuSort.DataBind();
//释放对象
dr.Close();
data.Dispose();
//-------------------------------------------------------------------------- }
private void DataListMenuSort_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
{
DataList DataListMenu=(DataList) e.Item.FindControl("DataListMenu"); Dbconn.Database_Sql data = new Dbconn.Database_Sql();//数据库操作类
SqlDataReader dr;
string SqlStr="select * from TbioaRoleRights where TypeNumber='"+DataListMenuSort.DataKeys[(int)e.Item.ItemIndex]+"' and FileName<>'' and mod<>'X'";
Response.Write(SqlStr);
data.RunSql(SqlStr,out dr); //设置网页栏目
DataListMenu.DataSource=dr;
DataListMenu.DataBind(); //释放对象
dr.Close();
data.Dispose();
}
} }
而且在 Page_Load 里面不能找到潜逃的DataListMenu,把DataListMenu放在DATALIST的外面就能找到,这个是怎么回事啊!!
解决方案 »
- 继承自System.ComponentModel.Component转为System.Windows.Forms.Control
- ln()在C#中怎么写
- C#如何给本地文件加水印(菜鸟求助!!高分悬赏)
- 请教一个关于分隔字符串的问题
- 关于OpenFileDialog的问题。
- OA系统 文件操作过程跟踪
- 关于对Excel的操作!各位老大请帮忙!!谢谢。。
- vs2005+sql2000,用membership建立用户,登录后如何在select 中调用登录的用户名
- 我要学C#,大家推荐经典书吧
- 西南某重点大学C#的考试题。大家可以做做。
- “int?”这种是什么用法?
- 用正则求表达式data: {gfgfg}中取{}中的数据
{
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
{
DataList DataListMenu=(DataList) e.Item.FindControl("DataListMenu"); Dbconn.Database_Sql data = new Dbconn.Database_Sql();//数据库操作类
SqlDataReader dr;
string SqlStr="select * from TbioaRoleRights where TypeNumber='"+DataListMenuSort.DataKeys[(int)e.Item.ItemIndex]+"' and FileName<>'' and mod<>'X'";
Response.Write(SqlStr);
data.RunSql(SqlStr,out dr); //设置网页栏目
DataListMenu.DataSource=dr;
DataListMenu.DataBind(); //释放对象
dr.Close();
data.Dispose();
}
} }我这样做了 但是没有值显示出来 这段代码有问题吗?