События для гиперссылки, не срабатывающей внутри пользовательского элемента управления, который находится внутри raddock

У меня на странице есть RadStrip. Внутри RadStrip я помещаю Raddocks, в которых заполняется страница UserControl.

Теперь на моей странице UserControl ascx у меня есть гиперссылка.

Пока я нажимаю на эту гиперссылку, она не попадает в события на странице UserControl ascx. вместо этого меня репостят на ту же страницу

Главная страница

RadDock dock6 = CreateRadDock();

dock6.Title = "Last Viewed Claims";
_userControl = LoadControl("~/pages/UserControl.ascx");
dock6.ContentContainer.Controls.Add(_userControl);
RadDockZone dz6 = (RadDockZone) RadDockZone1;
RadDockLayout1.Controls.Add(dock6);
dock6.Dock(dz6);

UserControl.ascx

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="UserControl.ascx.cs" 

EnableViewState="true" Inherits="UserControl" %>

<table border="0" width="100%">
    <tr>
<td>
            <asp:ListView ID="lvmydata" runat="server" >  
            <ItemTemplate >  
                <tr>  
                    <td>  
                        <asp:LinkButton ID="label1" runat="server" Text='<%# Eval("ID")%>'  
OnClick="linkClick">  
                        </asp:LinkButton>  
                    </td>  
                </tr>                   
            </ItemTemplate>  
        </asp:ListView>
        </td>
    </tr>
</table>

UserControl.ascx.cs

public IList MyData
        {
            set
            {
               _myData = value;
                lvmyData.DataSource = _myData;
                lvmyData.DataBind();
                }

}
            get { return _lastViewedClaimsList; }
        }

protected void linkClick(object sender, EventArgs e)
        {
            LinkButton btn = (LinkButton) sender;
            btn.CommandArgument = btn.Text;

          }

person Pathrudu    schedule 21.11.2013    source источник


Ответы (1)


Добавьте идентификаторы к элементам управления, которые вы создаете динамически, и убедитесь, что вы воссоздаете их правильно при каждой обратной передаче, предпочтительно в событии Page_Init.

_userControl = LoadControl("~/pages/UserControl.ascx");
_userControl.ID = "theUserControlID";//that should not change across postbacks
dock6.ContentContainer.Controls.Add(_userControl);
//make sure the dock also has an ID that does not change
person rdmptn    schedule 26.11.2013