2015-12-22 2 views
1

Я добавил сетку, и данные ограничены gridview. Я поместил ссылку в элемент templateNow, когда я нажимаю кнопку этой ссылки, должно появиться всплывающее окно. Я пробовал использовать modalPopupExtender, но он показывает ошибку: The TargetControlID of 'ModalPopupExtender1' is not valid. A control with ID 'lnkDownload' could not be found, поскольку linkbutoon находится в шаблоне элемента, он не найден.Как добавить всплывающее окно для элемента управления элементом элемента gridview в asp.net

<asp:GridView ID="minidata2" CssClass="table" runat="server" AutoGenerateColumns="false" DataKeyNames="abstract"> 

      <Columns> 
       <asp:BoundField DataField="projectid" HeaderText="MyFileId" /> 
       <asp:BoundField DataField="video" HeaderText="MyFileurl" /> 
       <asp:TemplateField HeaderText="abstract"> 
        <ItemTemplate> 
         <asp:LinkButton ID="lnkDownload" runat="server" Text="Download" OnClick="lnkDownload_Click"></asp:LinkButton> 
        </ItemTemplate> 
       </asp:TemplateField> 
      </Columns> 
     </asp:GridView> 

     <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> 
     <asp:ModalPopupExtender ID="ModalPopupExtender1" PopupControlID="panel1" TargetControlID="lnkDownload" runat="server"></asp:ModalPopupExtender> 

Теперь, как показать всплывающее окно в то время как мы clcik на кнопку ссылки

Обновленный Пожалуйста, проверьте код ниже

<asp:UpdatePanel runat="server" ID="up1"> 
      <ContentTemplate> 
     <asp:GridView ID="minidata" CssClass="table" runat="server" AutoGenerateColumns="false" DataKeyNames="abstract"> 

      <Columns> 
       <asp:BoundField DataField="pid" HeaderText="MyFileId" /> 
       <asp:BoundField DataField="video" HeaderText="MyFileurl" /> 
       <asp:TemplateField HeaderText="abstract"> 
        <ItemTemplate> 
         <asp:LinkButton ID="lnkDownload" runat="server" Text="Download" OnClick="lnkDownload_Click"></asp:LinkButton> 
        </ItemTemplate> 
       </asp:TemplateField> 
      </Columns> 
     </asp:GridView> 

     <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> 
     <asp:ModalPopupExtender ID="ModalPopupExtender1" PopupControlID="panel1" TargetControlID="Button1" runat="server"></asp:ModalPopupExtender> 
     <asp:Button ID="Button1" runat="server" Text="Button" /> 

     <asp:Panel runat="server" ID="panel1" style="display:none;"> 
      <div> 
      <asp:Label runat="server" Text="sacca"></asp:Label> 
      <asp:TextBox runat="server"></asp:TextBox> 
      <asp:LinkButton runat="server"></asp:LinkButton> 
       </div> 

     </asp:Panel> 
       </ContentTemplate> 
      <Triggers> 
       <asp:AsyncPostBackTrigger ControlID="minidata" /> 
      </Triggers> 
      </asp:UpdatePanel> 

ответ

0

ModalPopupExtender1 не умеет найти lnkDownload, который находится внутри GridView отсюда попробуйте что-то вроде этого

<asp:GridView ID="minidata2" CssClass="table" runat="server" AutoGenerateColumns="false" DataKeyNames="abstract"> 

      <Columns> 
       <asp:BoundField DataField="projectid" HeaderText="MyFileId" /> 
       <asp:BoundField DataField="video" HeaderText="MyFileurl" /> 
       <asp:TemplateField HeaderText="abstract"> 
        <ItemTemplate> 
         <asp:LinkButton ID="lnkDownload" runat="server" Text="Download" OnClientClick='openmodelpopup();' ></asp:LinkButton> 
        </ItemTemplate> 
       </asp:TemplateField> 
      </Columns> 
     </asp:GridView> 
<asp:Button ID="Button1" runat="server" Text="Button" Style="display: none;" /> 
     <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> 
     <asp:ModalPopupExtender ID="ModalPopupExtender1" PopupControlID="panel1" TargetControlID="Button1" runat="server"></asp:ModalPopupExtender> 


<script type="text/javascript"> 
    function openmodelpopup() { 

      document.getElementById('<%=Button1.ClientID %>').click(); 
     } 
    </script> 
+0

Нет, я получил ту же ошибку снова – ifaminsi

+0

@ Crazyy.Net Теперь обновленный –

0

Установите кнопку или ссылку, расположенную вне сетки, с таргетингом на Modalpop.

<asp:GridView ID="minidata2" CssClass="table" runat="server" AutoGenerateColumns="false" DataKeyNames="abstract"> 

      <Columns> 
       <asp:BoundField DataField="projectid" HeaderText="MyFileId" /> 
       <asp:BoundField DataField="video" HeaderText="MyFileurl" /> 
       <asp:TemplateField HeaderText="abstract"> 
        <ItemTemplate> 
         <asp:LinkButton ID="lnkDownload" runat="server" Text="Download" OnClick="lnkDownload_Click"></asp:LinkButton> 
        </ItemTemplate> 
       </asp:TemplateField> 
      </Columns> 
     </asp:GridView> 
<asp:LinkButton ID="lnkbtn" runat="server"></asp:LinkButton> 
     <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> 
     <asp:ModalPopupExtender ID="ModalPopupExtender1" PopupControlID="panel1" TargetControlID="lnkbtn" runat="server"></asp:ModalPopupExtender> 

Затем на LinkButton огнь события нажмите из GridView показать свое модальное всплывающее окно:

protected void lnkDownload_Click(object sender, EventArgs e) 
{ 
    // your code   
     ModalPopupExtender1.Show(); 
} 
+0

Но в моем шаблоне элемента я переплетен аннотацией как datakeyname (т.е. файл будет загружен, когда пользователь нажимает кнопку ссылки). Здесь должно отображаться всплывающее окно. – ifaminsi

+0

ОК, не проблема, выложите свой код для загрузки файла над 'modalpopextender.Show()'. ваш файл будет загружен и появится всплывающее окно. –

+0

это событие clickbutton для ссылки на элемент itemmemplate linkbutton не для внешней ссылки. –

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