DataList,Repeater组合使用问题? 现在有两个嵌套的DataList,有没有办法从内层的DataList控件的ItemDataBind事件中得到自身的引用? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我要获取DataKeys总不能写成(Datalist)send.DataKeys[e.Item.ItemIndex]吧! 比如在外层的DataList的,我可以在ItemDataBind事件中用DataList1.DataKeys[e.Item.ItemIndex]来获取我绑在DataKeyField属性上的值.然而在页面上我无法直接访问被包含在DataList1的一个项中的DataList控件.如果我要象在最外层DataList那样取得DataKeys中的值,是否可以在内层DataList控件ItemDataBind事件中这样写: protected void DataList2_ItemDataBound(object sender, DataListItemEventArgs e) { string s; s = ((DataList)sender).DataKeys[e.Item.ItemIndex].ToString(); } 我也遇到类似问题,<asp:DataList ID="DataList8" runat="server" OnItemCommand ="datalist8_select" Height="117px" Width="553px" RepeatColumns="1" RepeatDirection="Horizontal" DataKeyField ="id" style="height: 100%"><ItemTemplate> <asp:Image ID="Image7" ImageUrl ='<%#databinder.eval(container.dataitem,"imageurl")%>' runat="server" /><br /> <asp:DataList ID="DL8_SubDataList" OnItemCommand ="DL8_SubDatalist_Select" runat="server" RepeatDirection ="Horizontal" RepeatColumns =3 DataKeyField ="id" Width="533px" Height="75px" HorizontalAlign="Left" CaptionAlign="Left" style="text-align: left"> <itemtemplate> <table cellpadding =10 style ="font :status-bar "> <tr> <td valign =top > <asp:Image ID="imagetemp1" ImageUrl ='<%#databinder.eval(container.dataitem,"imageurl")%>' runat =server /> </td> <td style="font-size: 9pt"> <%#DataBinder.Eval(Container.DataItem,"name")%> <br/> <%#DataBinder.Eval(Container.DataItem, "price", "{0:c}")%> <br/> <asp:ImageButton ID="ImageBu1" CommandName ="select" ImageUrl ="~/image/buy.gif" runat =server /> </td> </tr> </table> </ItemTemplate> </asp:DataList> </ItemTemplate> </asp:DataList>事件代码Sub DL8_SubDatalist_Select(ByVal sender As Object, ByVal e As DataListCommandEventArgs) sqlconn.Open() Dim i As Integer = CInt(DL8_SubDatalist.DataKeys(e.Item.ItemIndex))就是这句"Dim i As Integer = CInt(DL8_SubDatalist.DataKeys(e.Item.ItemIndex))" 为什么老是说未声明名称"DL8_SubDatalist" 是不是因为DL8_SubDatalist嵌套在Datalist8中的原因? 今天试了一下,可以写成string id=((DataList)sender).DataKeys[e.Item.ItemIndex].toString();问题解决了! 为什么用window.open打开是两个窗口呢? 请教page.valid 浏览器中点击服务器端控件,页面没有任何反应 关于黄忠成的《深入剖析ASP.NET组件设计》中WebTimer2组件的问题 请问在访问远程机器的时候,需要一个身份验证,我怎么实现这个验证。 关于web下调用process的问题 cab的问题,高手支招! 一个插入数据库的奇怪的问题 shared的用法,有谁明白? 如何用vb实现"加入收藏"和"设为主页"啊?? 利用Dllimport引进动态连接库,dll文件应该放在哪个目录下? 刷新服务器的问题```
DataList1.DataKeys[e.Item.ItemIndex]来获取我绑在DataKeyField属性上的值.
然而在页面上我无法直接访问被包含在DataList1的一个项中的DataList控件.如果我要象在最外层DataList那样取得DataKeys中的值,是否可以在内层DataList控件ItemDataBind事件中这样写:
protected void DataList2_ItemDataBound(object sender, DataListItemEventArgs e)
{
string s;
s = ((DataList)sender).DataKeys[e.Item.ItemIndex].ToString();
}
<ItemTemplate>
<asp:Image ID="Image7" ImageUrl ='<%#databinder.eval(container.dataitem,"imageurl")%>' runat="server" /><br />
<asp:DataList ID="DL8_SubDataList" OnItemCommand ="DL8_SubDatalist_Select" runat="server" RepeatDirection ="Horizontal" RepeatColumns =3 DataKeyField ="id" Width="533px" Height="75px" HorizontalAlign="Left" CaptionAlign="Left" style="text-align: left">
<itemtemplate>
<table cellpadding =10 style ="font :status-bar ">
<tr>
<td valign =top >
<asp:Image ID="imagetemp1" ImageUrl ='<%#databinder.eval(container.dataitem,"imageurl")%>' runat =server />
</td>
<td style="font-size: 9pt">
<%#DataBinder.Eval(Container.DataItem,"name")%>
<br/>
<%#DataBinder.Eval(Container.DataItem, "price", "{0:c}")%>
<br/>
<asp:ImageButton ID="ImageBu1" CommandName ="select" ImageUrl ="~/image/buy.gif" runat =server />
</td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
</ItemTemplate>
</asp:DataList>
事件代码
Sub DL8_SubDatalist_Select(ByVal sender As Object, ByVal e As DataListCommandEventArgs)
sqlconn.Open()
Dim i As Integer = CInt(DL8_SubDatalist.DataKeys(e.Item.ItemIndex))
就是这句"Dim i As Integer = CInt(DL8_SubDatalist.DataKeys(e.Item.ItemIndex))" 为什么老是说未声明名称"DL8_SubDatalist" 是不是因为DL8_SubDatalist嵌套在Datalist8中的原因?
问题解决了!