我有一个奇怪的情况。
我在 UpdatePanel 中有一个中继器。中继器有一个链接按钮,它产生一个新窗口——或者更确切地说,它应该产生一个新窗口。当中继器位于 UpdatePanel 之外时,它工作正常;现在没有了。
我尝试将转发器设置为 AsyncPostBack 触发器,但没有成功:
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="rptEmployees" />
<asp:AsyncPostBackTrigger ControlID="imgClear" />
</Triggers>
我尝试在 ItemDataBound 上将 Linkbutton 设为 AsyncPBtrigger,但没有成功:
LinkButton lb = (LinkButton)e.Item.FindControl("lbtnVcard");
sm1.RegisterAsyncPostBackControl(lb);
当我将 Linkbutton 设为 PostBackTrigger 时,弹出窗口会出现一次。以后任何时候我点击其中一个链接按钮(直到我进行硬刷新)都不会出现弹出窗口,尽管中继器的 ItemCommand 总是被点击:
ClientScript.RegisterClientScriptBlock(GetType(), "", "<script>var" +
@" win=window.open('vCard.aspx',null,'width=50,height=50," +
@"top=100,left=100','true');</script>", false);
最后,这是我的 ItemTemplate:
<ItemTemplate>
<!--For IE9 there can be no whitespace -->
<tr>
<td width="140"><strong><%# Eval("DisplayName") %></strong><asp:HiddenField runat="server" ID="HFname" Value='<%# Eval("SamAccountName") %>'/></td>
<td width="100"><%# Eval("Office") %></td>
<td width="120"><%# Eval("WorkPhone") %></td>
<td width="120"><%# Eval("MobilePhone") %></td>
<td width="300" style="text-align: left"><a href="mailto:<%# Eval("EmailAddress") %>"><%# Eval("EmailAddress") %></a></td>
<td><div class="button"><asp:LinkButton CommandName="vCard" runat="server" ID="lbtnVcard" Text="vCard" CssClass="button"/></div></td>
</tr>
</ItemTemplate>
任何线索/想法?
谢谢。
更新:仍然是一个问题,因为我需要访问服务器将一些数据加载到内存中。