2015-12-22 65 views
1

我添加了一个网格视图,并且数据绑定到了gridview。我在项目模板中放置了一个linkbutton,当我点击这个链接按钮时,弹出窗口应该出现。我尝试使用modalPopupExtender,但它显示一个错误:The TargetControlID of 'ModalPopupExtender1' is not valid. A control with ID 'lnkDownload' could not be found作为linkbutoon是项目模板中找不到。如何在asp.net中为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" 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

设置gridview目标Modalpop外的按钮或linkbutton。

<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> 

然后在从GridView的LinkBut​​ton的Click事件火表明您模式弹出:

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

但在我的项目模板,我绑定抽象作为datakeyname(即当用户点击链接按钮时将下载文件)。这里显示一个弹出窗口。 – ifaminsi

+0

好吧,没有问题把你的文件下载代码放在'modalpopextender.Show()'上面。你的文件将被下载并弹出。 –

+0

此链接按钮事件是针对itemtemplate linkbutton而不是外部链接按钮。 –

相关问题