我做datalist的嵌套,外层为main_dl,内层为x_dl,想让内层的newsid根据外层的root选择显示,
可是在前台写好html后一点击回到后台就被提示<%# 值 %> 无效!
还请各位前辈帮我看看!谢谢!谢谢前台:
<asp:datalist id=main_dl runat="server"DataSource="<%# main_DS %>">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem,"root") %>
<asp:datalist id=x_dl runat="server"DataSource="<%# FilterData(DataBinder.Eval (Container.DataItem,"root").tostrig ()) %>">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem,"newsid") %>
</ItemTemplate>
</asp:datalist>
</ItemTemplate>
</asp:datalist>后台:——————————————————————————vb.net版Function FilterData(ByVal v As String) As DataView
da_z.Fill(DS_z, "news") 'da_z的select已经在Page_Load中完成
Dim dv As DataView = New DataView(DS_z.Tables("news"))
dv.RowFilter = "root = " + v
x_dl.DataBind()
Return dv
End Functionc#版
DataView FilterData(string v)
{
da_z.Fill(DS_z, "news"); // DS_z的select已经在Page_Load中完成
DataView dv = new DataView(DS_z.Tables("news"));
dv.RowFilter = "Title = " + v;
x_dl.DataBind();
return dv;
}
外层main_dl的main_ds也已经在Page_Load中完成了绑定
可是在前台写好html后一点击回到后台就被提示<%# 值 %> 无效!
还请各位前辈帮我看看!谢谢!谢谢前台:
<asp:datalist id=main_dl runat="server"DataSource="<%# main_DS %>">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem,"root") %>
<asp:datalist id=x_dl runat="server"DataSource="<%# FilterData(DataBinder.Eval (Container.DataItem,"root").tostrig ()) %>">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem,"newsid") %>
</ItemTemplate>
</asp:datalist>
</ItemTemplate>
</asp:datalist>后台:——————————————————————————vb.net版Function FilterData(ByVal v As String) As DataView
da_z.Fill(DS_z, "news") 'da_z的select已经在Page_Load中完成
Dim dv As DataView = New DataView(DS_z.Tables("news"))
dv.RowFilter = "root = " + v
x_dl.DataBind()
Return dv
End Functionc#版
DataView FilterData(string v)
{
da_z.Fill(DS_z, "news"); // DS_z的select已经在Page_Load中完成
DataView dv = new DataView(DS_z.Tables("news"));
dv.RowFilter = "Title = " + v;
x_dl.DataBind();
return dv;
}
外层main_dl的main_ds也已经在Page_Load中完成了绑定
解决方案 »
- 求解!Cache与Application的性能
- IIS目录安全性 不允许IIS控制密码导致互联网连接中断的问题
- 请问支付宝的不可用余额是怎么做的
- ☆★☆ 能进来看下么 :DATATABLE的问题..... ☆★☆
- ASP.NET发邮件问题socket
- 用户控件问题
- 发邮件调用出现Could not access 'CDO.Message' object. 怎么办?下面代码有什么问题?
- System.Web.Mail发送邮件在服务器上不好用
- 如何在datagrid中获得编辑列的headertext内容?
- 使用框架的时候!!怎么让鼠标移到两个框架交互处(frameBorder)时!!鼠标可以变成拉伸的形状!!!!
- 用JavaScript打开模态窗口(ShowModalDialog),只要回发服务器,首先打开当前窗口的非模态窗口,然后再执行操作。请教各位高人如何解决!
- HTTP POST 如何发出如下这样的xml请求?
我知道,正在用这个。是你写错单引号和双引号了。应该这样写:
<asp:datalist id=x_dl runat="server" DataSource='<%# FilterData(DataBinder.Eval (Container.DataItem,"root").tostrig ()) %>'>看清楚没。是单引号里面可以括双引号。 曾经也被困扰过。^^
<%# FD(DataBinder.Eval(Container.DataItem,"Title").tostrig ())%
未找到类型“String”的公共成员“tostrig”不加.tostrig 又没能显示数据,还请前辈帮我看看是不是还有那里可能出错!谢谢前辈
可是我在前台明明已经加入了啊! <asp:datalist id=x_dl runat="server"DataSource='<%# FilterData(DataBinder.Eval (Container.DataItem,"root").tostrig ()) %>'>
ds.DataBind();
Function FilterData(ByVal v As String) As DataView
改成
Function FilterData(ByVal v As object) As DataView
private void main_dl_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
DataList ds=(e.Item.FindControl("x_dl") as DataList)
ds.DataBind();
}
我是用下面这个函数给x_dl的DataSource赋值:DataView FilterData(string v)
{
da_z.Fill(DS_z, "news"); // DS_z的select已经在Page_Load中完成
DataView dv = new DataView(DS_z.Tables("news"));
dv.RowFilter = "Title = " + v;
return dv;
}
而用这个绑定数据时,是不是因为DataSource还没被赋值,所以没能显示呢?
private void main_dl_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
DataList ds=(e.Item.FindControl("x_dl") as DataList)
ds.DataBind();
}
还是我的函数出了问题,谢谢
<asp:datalist id=x_dl runat="server">
cs:private void main_dl_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
DataList ds=(e.Item.FindControl("x_dl") as DataList)
ds.DataSource= FilterData(DataBinder.Eval (Container.DataItem,"root").ToString())
ds.DataBind();
}
System.Data;
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem,"root") %>
<asp:datalist id=x_dl runat="server">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem,"newsid") %>
</ItemTemplate>
</asp:datalist>
</ItemTemplate>
</asp:datalist>后台:
DataView FilterData(string v)
{
da_z.Fill(DS_z, "news"); // DS_z的select已经在Page_Load中完成
DataView dv = new DataView(DS_z.Tables("news"));
dv.RowFilter = "Title = " + v;
return dv;
}
private void main_dl_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
DataList ds=(e.Item.FindControl("x_dl") as DataList)
ds.DataSource= FilterData(DataBinder.Eval (Container.DataItem,"root").ToString())
ds.DataBind();
}
出错的地方:ds.DataSource= FilterData(DataBinder.Eval (Container.DataItem,"root").ToString())
处提示
:Container未声明谢谢前辈们指点
处提示
:Container未声明
ds.DataSource= FilterData(DataBinder.Eval (Container.DataItem,"root").ToString()) 换成
ds.DataSource= FilterData(DataBinder.Eval (e.item.DataItem,"root").ToString())