【发布时间】:2014-08-22 13:18:11
【问题描述】:
我昨天在用C#asp.net开发网页的时候开始使用fancybox插件,我成功地用它来显示隐藏的面板、图像等。
但今天我想在回发后将它用于不同的情况。
我有一些在页面加载时动态创建的链接按钮。每个按钮单击都会更改隐藏面板的内容 - 例如标签的文本。我想在花式框中显示更改后的面板,但我真的不知道如何。
我只想说我搜索了几个小时的解决方案,但没有找到与我的问题匹配的解决方案。
我可以做错什么吗? 我会很乐意学习的。
谢谢。
编辑
我的html文档包括:
<asp:Panel ID="Panel1" runat="server">
</asp:Panel>
<div style="display:none">
<div id="data">
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</div>
</div>
Panel1 将成为动态按钮的父级。 data div 是其内容必须显示在fancybox中的div。
背后的代码:
protected void Page_Load(object sender, EventArgs e)
{
for (int i = 1; i <= 4; i++)
{
LinkButton but = new LinkButton() { ID = "LinkButton" + i.ToString(), Text=i.ToString(), CssClass="fancybutton" };
but.Font.Size = 100;
but.Click += new EventHandler(ButtonClick);
Panel1.Controls.Add(but);
}
}
protected void ButtonClick(object sender, EventArgs e)
{
string id = (sender as LinkButton).ID;
Label1.Text = id;
Response.Write(Label1.Text); // test in purpose to see the label text's change
}
我的 jquery:
$(".fancybutton").click(function () {
$.fancybox({
'type': 'inline',
'content': '#data'
});
});
fancybox 似乎出现了一秒钟,但由于回发页面被刷新,fancybox 消失了。
【问题讨论】:
-
什么版本的fancybox?如果是 v1.3.4,则该版本不支持动态添加的元素,因此请检查 stackoverflow.com/a/9084293/1055987 .... 如果使用 v2.x 并且仍然无法正常工作,请发布您正在使用的代码或重现问题的 jsfiddle。跨度>
-
但我猜服务器控件不同(如果我错了,请告诉我)。我会尽量让自己更清楚 - 链接按钮在后面的代码中有点击事件。我有 4 个链接按钮,每个链接按钮都会更改后面代码中的标签文本。我的问题是如何在服务器中进行更改,然后调用fancybox弹出。
-
不知道,我们需要先查看您渲染的 html 以及将事件绑定到这些 html 元素的 jQuery 代码,然后我们才能做出任何假设
-
嗯,我用了我自己制作的一些物件等等,不过我会试着在一分钟内做一个演示
-
我的问题已编辑。