我做datalist的嵌套,外层为main_dl,内层为x_dl,想让内层的newsid根据外层的root选择显示:前台:
<asp:datalist id=main_dl runat="server"DataSource="<%# main_DS %>">
<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>
后台:
c# 版:
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 dl=(e.Item.FindControl("x_dl") as DataList)
dl.DataSource= FilterData(DataBinder.Eval (Container.DataItem,"root").ToString ()) // 这里出错
dl.DataBind();
}
vb.net版:
Function FilterData(ByVal v As String) As DataView
da_z.Fill(DS_z, "news") 'DS_z的select已经在Page_Load中完成
Dim dv As DataView = New DataView(DS_z.Tables("news"))
dv.RowFilter = "Title = " + v
Return dv
End Function Private Sub main_dl_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs)
Dim dl As DataList =CType(e.Item.FindControl("x_dl"), DataList)
dl.DataSource = FilterData(DataBinder.Eval(Container.DataItem, "root").ToString) //这里出错
dl.DataBind
End Sub出错的地方:
ds.DataSource= FilterData(DataBinder.Eval (Container.DataItem,"root").ToString())
处提示:
Container未声明
请前辈帮我看看,好几天啦,有点崩溃,谢谢,谢谢
<asp:datalist id=main_dl runat="server"DataSource="<%# main_DS %>">
<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>
后台:
c# 版:
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 dl=(e.Item.FindControl("x_dl") as DataList)
dl.DataSource= FilterData(DataBinder.Eval (Container.DataItem,"root").ToString ()) // 这里出错
dl.DataBind();
}
vb.net版:
Function FilterData(ByVal v As String) As DataView
da_z.Fill(DS_z, "news") 'DS_z的select已经在Page_Load中完成
Dim dv As DataView = New DataView(DS_z.Tables("news"))
dv.RowFilter = "Title = " + v
Return dv
End Function Private Sub main_dl_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs)
Dim dl As DataList =CType(e.Item.FindControl("x_dl"), DataList)
dl.DataSource = FilterData(DataBinder.Eval(Container.DataItem, "root").ToString) //这里出错
dl.DataBind
End Sub出错的地方:
ds.DataSource= FilterData(DataBinder.Eval (Container.DataItem,"root").ToString())
处提示:
Container未声明
请前辈帮我看看,好几天啦,有点崩溃,谢谢,谢谢
解决方案 »
- 能否实现在不操作数据库得情况下对DataSet重新排序?
- switch case 如何使用定义成常量的几个int常量。
- 如何把放在 Ajax UpdatePanel 里面的控件给我揪出来!
- 利用事务为何在TransactionScope ts = new TransactionScope()的时候就说事务超时啊
- 动态生成控件的事件问题
- !!!!!!!!!!!!!!!!!!!!!!!!!关于dataset的问题%%%%%%%%%%(线等)
- 初学问题请帮忙!
- 一个Reponse问题
- 自定义方法问题
- IIS 远程访问access数据库
- asp:HyperLink的问题
- HtmlInputFile上传文件出错了,请各位大虾帮助(asp.net+C#)
http://dotnet.aspx.cc/ShowDetail.aspx?id=149E5DD7-3B32-461e-ACC6-51D1652E6746
这句好像在后台调用Container.DataItem出错了!是不是要加点什么修饰呢?谢谢
{
if((e.Item.ItemType == ListItemType.Item) ||
(e.Item.ItemType == ListItemType.AlternatingItem))
{
DataList dl=(e.Item.FindControl("x_dl") as DataList)
dl.DataSource= FilterData(DataBinder.Eval (e.Item.DataItem,"root").ToString());
dl.DataBind();
}
}
可是现在有除了点问题,内层的数据筛选不出来,我怀疑是不是
Dim dv As DataView = New DataView(DS_z.Tables("news"))
dv.RowFilter = "TopicID = " + v这里出错呢?
我是想让内层(DS_z)显示,TopicID等于外层(main_DS)TopicID的所有记录字段的对应是正确的,请前辈们,看看,是不是还有那里要修饰一下
谢谢 谢谢 前辈们指点,我实在看不出来
Dim dv As DataView = New DataView(DS_z.Tables("news"))
dv.RowFilter = "TopicID = " + v改为了
da_z.SelectCommand.Parameters(0).Value = v //以筛选出想要的内层数据
Dim dv As DataView = New DataView(DS_z.Tables("news"))
Return dv这样一改,第一格内层循环到是正确,可是以后的每个内层的值都又和第一个内层的值是完全相同的!!!这又是什么原因呢?
真是奇了怪了!
http://db.chinacars.com/ShowBrand.aspx?manufacture_id=82
dl.DataSource= FilterData(DataBinder.Eval (e.item.DataItem,"root").ToString ())