服务器方法没有在listviewlayouttemplate中触发
本文关键字:listviewlayouttemplate 方法 服务器 | 更新日期: 2023-09-27 18:07:07
我有一个服务器方法,我想从我的ListView的LayoutTemplate内的链接运行。我发现它不会触发,除非我把链接移到LayoutTemplate之外。有没有其他的方式来运行一个服务器端事件从一个锚或LinkButton内的LayoutTemplate?我想尝试一个链接与CommandName和捕获OnItemCommand的内部,但我不知道如果这工作在LayoutTemplate内。
我在LayoutTemplate中的锚:
<a runat="server" id="proceedCheckout" OnServerClick="startCheckout">
服务器方法:
public void startCheckout(object sender, EventArgs e)
{....
我试图复制您的问题,但没有运气。这似乎对我有用。我已经包括了我的测试标记和代码,这样你就可以看到如果你错过了什么:
标记
<asp:ListView ID="listView1" runat="server">
<LayoutTemplate>
<div>
<asp:LinkButton ID="linkButton1" runat="server" OnClick="LinkButton_Click" Text="Link Button"></asp:LinkButton>
</div>
<div runat="server" id="itemPlaceholder" />
</LayoutTemplate>
<ItemTemplate>
<div><%# Container.DataItem %></div>
</ItemTemplate>
</asp:ListView>
protected void Page_Load(object sender, EventArgs e)
{
List<string> data = new List<string>();
data.Add("Item 1");
data.Add("Item 2");
data.Add("Item 3");
listView1.DataSource = data;
listView1.DataBind();
}
protected void LinkButton_Click(object sender, EventArgs e)
{
//...
}