2015-12-22 73 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而不是外部鏈接按鈕。 –

相關問題