在 gridview 的链接按钮单击中未引发弹出窗口
Popup not raised in a linkbutton click of gridview
我正在尝试从网格视图中显示弹出窗口。但是当我尝试 运行 网站中的以下代码时,弹出面板不可见。但是当我删除面板的样式(即 display=none;)时,它就像一个面板而不是弹出窗口。在网格视图中单击 link 按钮,我试图显示一个弹出窗口。帮帮我...
<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:Panel runat="server" ID="panel1" Height="200px" Width="300px" BorderStyle="Solid" BorderWidth="2px" style="display:none;">
<div>
<table>
<tr>
<td>
<asp:Label runat="server" Text="sacca"></asp:Label>
</td>
<td>
<asp:TextBox ID="emails" runat="server"></asp:TextBox>
</td>
<td>
<asp:LinkButton runat="server">5e76d</asp:LinkButton>
</td>
</tr>
</table>
</div>
</asp:Panel>
<asp:ModalPopupExtender ID="ModalPopupExtender1" PopupControlID="panel1" TargetControlID="Button1" runat="server"></asp:ModalPopupExtender>
<asp:Button ID="Button1" Style="display: none;" runat="server" Text="Button" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="minidata" />
</Triggers>
</asp:UpdatePanel>
在 .cs 文件中
LinkButton lnkbtn = sender as LinkButton;
GridViewRow gvrow = lnkbtn.NamingContainer as GridViewRow;
string filePath = minidata.DataKeys[gvrow.RowIndex].Value.ToString();
HiddenField1.Value = filePath;
emails.Text = "myemail";
this.ModalPopupExtender1.Show();
而且当我检查网站时,我找不到页面中显示的面板
是的,我以前就知道。您必须模拟点击您的 modalPopupExtender 的 TargetControl。所以在你的代码中它似乎是 Button1.
所以尝试通过替换这个来做到这一点
<asp:LinkButton ID="lnkDownload" runat="server" Text="Download" OnClick="lnkDownload_Click"></asp:LinkButton>
和
<asp:LinkButton ID="lnkDownload" runat="server" Text="Download" onclick="$('[id$=Button1]').click()"></asp:LinkButton>
您的服务器端代码对此方法没有用
编辑
好的,你只是没有 JQuery 在你的应用程序中 ^^。
您能否在您的应用中添加 JQuery 或者它是一个限制条件?
如果是,等待我为您找到本机 JavScript 代码,请尝试包含此
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.4.min.js"/>
我正在尝试从网格视图中显示弹出窗口。但是当我尝试 运行 网站中的以下代码时,弹出面板不可见。但是当我删除面板的样式(即 display=none;)时,它就像一个面板而不是弹出窗口。在网格视图中单击 link 按钮,我试图显示一个弹出窗口。帮帮我...
<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:Panel runat="server" ID="panel1" Height="200px" Width="300px" BorderStyle="Solid" BorderWidth="2px" style="display:none;">
<div>
<table>
<tr>
<td>
<asp:Label runat="server" Text="sacca"></asp:Label>
</td>
<td>
<asp:TextBox ID="emails" runat="server"></asp:TextBox>
</td>
<td>
<asp:LinkButton runat="server">5e76d</asp:LinkButton>
</td>
</tr>
</table>
</div>
</asp:Panel>
<asp:ModalPopupExtender ID="ModalPopupExtender1" PopupControlID="panel1" TargetControlID="Button1" runat="server"></asp:ModalPopupExtender>
<asp:Button ID="Button1" Style="display: none;" runat="server" Text="Button" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="minidata" />
</Triggers>
</asp:UpdatePanel>
在 .cs 文件中
LinkButton lnkbtn = sender as LinkButton;
GridViewRow gvrow = lnkbtn.NamingContainer as GridViewRow;
string filePath = minidata.DataKeys[gvrow.RowIndex].Value.ToString();
HiddenField1.Value = filePath;
emails.Text = "myemail";
this.ModalPopupExtender1.Show();
而且当我检查网站时,我找不到页面中显示的面板
是的,我以前就知道。您必须模拟点击您的 modalPopupExtender 的 TargetControl。所以在你的代码中它似乎是 Button1.
所以尝试通过替换这个来做到这一点
<asp:LinkButton ID="lnkDownload" runat="server" Text="Download" OnClick="lnkDownload_Click"></asp:LinkButton>
和
<asp:LinkButton ID="lnkDownload" runat="server" Text="Download" onclick="$('[id$=Button1]').click()"></asp:LinkButton>
您的服务器端代码对此方法没有用
编辑
好的,你只是没有 JQuery 在你的应用程序中 ^^。
您能否在您的应用中添加 JQuery 或者它是一个限制条件?
如果是,等待我为您找到本机 JavScript 代码,请尝试包含此
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.4.min.js"/>