简体   繁体   English

如何在asp.net中为gridview项模板控件添加弹出窗口

[英]How to add a popup window for a gridview item template control in asp.net

I added a grid view and the data is bounded to gridview. 我添加了一个网格视图,数据绑定到了网格视图。 I placed a linkbutton in a item templateNow when I click this link button a popup should appear. 我在项目模板中放置了一个链接按钮。现在,当我单击此链接按钮时,将出现一个弹出窗口。 I tried using modalPopupExtender but it shows an error : The TargetControlID of 'ModalPopupExtender1' is not valid. A control with ID 'lnkDownload' could not be found 我尝试使用modalPopupExtender,但显示错误: The TargetControlID of 'ModalPopupExtender1' is not valid. A control with ID 'lnkDownload' could not be found The TargetControlID of 'ModalPopupExtender1' is not valid. A control with ID 'lnkDownload' could not be found as linkbutoon is in item template it could not be found. The TargetControlID of 'ModalPopupExtender1' is not valid. A control with ID 'lnkDownload' could not be found因为linkbutoon位于项目模板中,因此找不到。

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

Now how to show a popup window while we clcik on link button 现在,当我们点击链接按钮时如何显示弹出窗口

Updated Please check the below code 更新请检查以下代码

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

ModalPopupExtender1 is not able to find lnkDownload which is inside gridview hence try something like this ModalPopupExtender1无法找到位于gridview内的lnkDownload ,因此请尝试这样的操作

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

Set a button or linkbutton outside gridview targeting Modalpop. 在以Modalpop为目标的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: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>

Then On linkbutton click event fire from gridview show your modal popup: 然后在从网格视图的链接按钮上单击事件触发,显示您的模式弹出窗口:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM