两个DataList嵌套,内层怎么获得外层动态值作为自己的参数
两个DataList嵌套,内层如何获得外层动态值作为自己的参数?
假设有一个类似论坛回帖列表的实现。
用到了2个DataList嵌套,其中有DataList1+ObjeckDataSource1和DataList2+ObjeckDataSource2(在1的内部)。
DataList1循环显示从数据库查询到的各条信息,其中假设有一个名为AUTHOR的值。
这时候想要让DataList2+ObjeckDataSource2获得这个动态的AUTHOR值,然后让这个值作为ObjeckDataSource2的SELECT方法的参数传递。
需要怎么做到?
代码如上,datalist1可以正常显示,而datalist2因为ObjectDataSource2无法获得参数所以无法查询。
ObjectDataSource2用什么方法可以获得datalist1中的动态的AUTHOR值?
谢谢
------解决方案--------------------
DataList1 ItemBind事件的时候取到值来绑定DataList2
------解决方案--------------------
假设有一个类似论坛回帖列表的实现。
用到了2个DataList嵌套,其中有DataList1+ObjeckDataSource1和DataList2+ObjeckDataSource2(在1的内部)。
DataList1循环显示从数据库查询到的各条信息,其中假设有一个名为AUTHOR的值。
这时候想要让DataList2+ObjeckDataSource2获得这个动态的AUTHOR值,然后让这个值作为ObjeckDataSource2的SELECT方法的参数传递。
需要怎么做到?
- C# code
<asp:DataList ID="DataList1" runat="server" DataSourceID="ObjectDataSource1" Width="100%" DataKeyField="AUTHOR"> <ItemTemplate> <table> <tr> <td> <%#Eval("AUTHOR") %> </td> </tr> <tr> <td> <asp:DataList ID="DataList2" runat="server" DataSourceID="ObjectDataSource2"> <ItemTemplate> <table> <tr> <td> 查询得到用户密码:<%#Eval("PASSWORD") %> </td> </tr> </table> </ItemTemplate> </asp:DataList> </td> </tr> </table> </ItemTemplate> </asp:DataList> <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetReplaysById" TypeName="MyBBSBLL.TitleManager"> <SelectParameters> <asp:QueryStringParameter Name="_titleid" QueryStringField="titleid" Type="Int32" /> <asp:QueryStringParameter DefaultValue="1" Name="_page" QueryStringField="page" Type="Int32" /> </SelectParameters> </asp:ObjectDataSource> <asp:ObjectDataSource ID="ObjectDataSource2" runat="server" SelectMethod="GetUserInfoByUserName" TypeName="MyBBSBLL.UserManager"> <SelectParameters> <asp:ControlParameter ControlID="DataList1" Name="_username" PropertyName="SelectedValue" Type="String" /> </SelectParameters> </asp:ObjectDataSource>
代码如上,datalist1可以正常显示,而datalist2因为ObjectDataSource2无法获得参数所以无法查询。
ObjectDataSource2用什么方法可以获得datalist1中的动态的AUTHOR值?
谢谢
------解决方案--------------------
DataList1 ItemBind事件的时候取到值来绑定DataList2
------解决方案--------------------
- C# code
<asp:DataList id="DataList2" runat="server" DataSourceID="SqlDataSource2">
<ItemTemplate>
<tr>
<td class="news_title_td" style="width:500;">
<a style="font-weight: bold; font-size: 13px;color:White;" href=' <%# "newstypeshow.aspx?newstypeid=" + Eval("newstypeid") %>' target="_blank"> <%# Eval("newstype")%> </a> </td>
</tr>
<tr> <td>
<asp:DataList ID="DataList3" runat="server" DataKeyField="newsid" DataSourceID="SqlDataSource3">