2010-12-04 5 views

ответ

4

Как я сделал это:

  1. Поместите ModalPopupExtender снаружи (после) контроля ретранслятора.
  2. Добавить кнопку, которая будет действовать как «поддельная» цель для ModalPopupExtender, поместить ее снаружи (после) ретранслятора. Используйте «Style =» display: none «', чтобы скрыть кнопку от пользователя. Событие OnClick не должно быть привязано к этой кнопке.
  3. Установите целевую панель ModalPopupExtender вне ретранслятора.
  4. В шаблоне элемента ретранслятора добавить LinkButton с OnClick, используя LinkButton позволяет использовать CommandArgument, который может быть привязан к DataBinder - скажем, за рекордную ID
  5. В коде создать подпрограмму, которая обрабатывает onclick для кнопки link в ретрансляторе. При необходимости сделайте directCast объекта-отправителя на ссылку, чтобы у вас был доступ к commandArgument.
  6. занесения целевой ModalPopupExtender панель надлежащим образом
  7. Делают ModalPopupExtender.show()

HTML

<ul id="Repeater"> 
<asp:Repeater ID="rptMain" runat="server"> 
    <HeaderTemplate> 
    <span class="RepeaterHeader"> 
     <li> 
     Edit 
     </li> 
    </span> 
    <div class="clear"></div> 
    </HeaderTemplate> 
    <ItemTemplate> 
    <li class="RptLeadItemEdit"> 
     <asp:LinkButton ID="btEdit" runat="server" Text="Edit" 
      CommandArgument='<%#DataBinder.Eval(Container.DataItem, "ID")%>' 
      OnClick="OpenMPEEdit" /> 
    </li> 
    <div class="clear"></div> 
    </ItemTemplate> 
</asp:Repeater> 
</ul> 
<asp:Button ID="MpeFakeTarget" runat="server" 
    CausesValidation="False" Style="display:none" /> 
<asp:ModalPopupExtender ID="mpeEdit" runat="server" 
    TargetControlId="MpeFakeTarget" 
    PopupControlID="pnlEdit" 
    OkControlID="btCloseMPE" 
    BackgroundCssClass="ModalPopupBG" /> 
<asp:Panel CssClass="ModalPanel" runat="server" ID="pnlEdit"> 
    EDIT LEAD 
    <asp:Label runat="server" ID="MPETEST"></asp:Label> 
    <asp:Button runat="server" ID="btCloseMPE" text="Close" /> 
</asp:Panel> 

Код За

Protected Sub OpenMPEEdit(ByVal sender As Object, ByVal e As System.EventArgs) 
     Dim wLink As New LinkButton 
     wLink = DirectCast(sender, LinkButton) 
     MPETEST.Text = "ID = " & wLink.CommandArgument 
     mpeEdit.Show() 
End Sub 
+0

Пробовал это и литиево Щелчок nkbutton ничего не делает, он не вводит код sub. Есть идеи? – SteveCav 2012-04-21 11:52:18

Смежные вопросы