<asp:ListView ID="CategoryList" runat="server">
<ItemTemplate>
<ul id="container">
<li>
<img src="<%# Eval("CategorieAfbeelding")%>" alt="">
<p><%# Eval("CategorieNaam")%></p>
</li>
</ul>
</ItemTemplate>
</asp:ListView>
在上面的代码中,我想要它,所以当我单击列表项时,我触发一个函数,将<%# Eval("CategorieNaam")%>
提供给后面的代码。
我通常使用像这样的OnCommand="btnMoreInfo_Command" CommandArgument='<%# Eval("CategorieNaam")%>'
,但这适用于ASP按钮,而不是列表项。
我尝试在列表项上使用OnCommand函数。我也试过做一个看不见的asp按钮,但那只会造成混乱。这是不可能把项目内的asp按钮要么使它不实用。
1条答案
按热度按时间j9per5c41#
只需使用按钮(或ImageButton)标准点击事件。
所以,说这个ListView:
请注意,如果可能的话,我建议对GridView或ListView使用datakey。这样做的原因是,您可以轻松地获取数据库PK行值,而不必在标记中公开甚至显示数据库PK行值。
所以,上面加载的代码是这样的:
结果是这样的:
所以,在上面,我们有一个按钮点击(图像按钮)。
下面显示了简单的按钮单击事件如何获取行信息。
因此,上面展示了如何获取信息,如行索引,数据库PK值,甚至如何从给定行中取出控件。
ListView,Repeater,GridView等所有支持使用“命名容器”,并将返回行单击对象。
在示例标记中,您没有显示行单击是如何发生的。但是,作为一般规则,您要从中提取当前行值的任何控件?
这样的控件应该是服务器端控件,像大多数控件一样有一个“id”,这样你就可以使用findcontrol从给定的控件中获取值。
在某些情况下,我经常为了编码的“方便”而在运行中添加一些额外的按钮属性。
所以,上面的图像按钮点击可以说:
所以,我“编造”了PKID和FighterName属性。
因此,在按钮单击的代码后面,我可以简单地使用我添加到按钮单击的“自定义”属性。
例如:
因此,在大多数情况下,您可以(也应该)使用行项的FindControl方法。然而,我经常会“弥补”并为行按钮附加一些自定义属性以便于使用。