Метод сервера не запускается внутри Listview LayoutTemplate - PullRequest
0 голосов
/ 01 сентября 2011

У меня есть метод сервера, который я хочу запустить по ссылке внутри LayoutTemplate моего ListView.Я обнаружил, что он не срабатывает, если я не переместу ссылку за пределы LayoutTemplate.Есть ли другой способ запустить серверное событие из якоря или LinkButton внутри LayoutTemplate?Я думал о попытке ссылки с CommandName и захвата этого внутри OnItemCommand, но я не знаю, работает ли это внутри LayoutTemplate.

Мой якорь внутри LayoutTemplate:

  <a runat="server" id="proceedCheckout"  OnServerClick="startCheckout"> 

Метод сервера:

public void startCheckout(object sender, EventArgs e)
    {....

1 Ответ

0 голосов
/ 01 сентября 2011

Я попытался повторить вашу проблему, но безуспешно.Кажется, это работает для меня.Я включил тестовую разметку и код, чтобы вы могли увидеть, что вам что-то не хватает:

Разметка

<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)
{
    //...
}

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...