这是我的问题。
我有一个转发器。里面有很多文本框。在最右边的列中,有一个链接按钮。单击此链接按钮将显示一个modalpopupextender,它将显示所选行的详细记录。
我已经让它工作得很好,但它很慢,因为当你点击链接按钮时,它会刷新整个页面。
我不想重新加载转发器,因为这是非常慢的部分。
我尝试在updatePanel中添加一个updatePanel(转发器),但由于转发器位于updatePanel内部,它仍会重新加载转发器。
所以问题是,如何点击链接按钮,它不会重新加载转发器......
任何想法都将不胜感激。 顺便说一句,我正在用.net 2.0,c#
开发它答案 0 :(得分:1)
Try this one.
<asp1:UpdatePanel ID="updatepanel4" runat="server" >
<ContentTemplate>
<table id="AssignedRequest" class="tablecont" runat="server" style="width: 900px;" >
<tr>
<td>
<div style=" display:block; width:900px; height:350px;overflow:scroll; ">
<asp:Repeater runat="server" ID="RepeaterRequest">
<HeaderTemplate >
<table class="list_table" border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<th>Name</th>
<th></th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%# Eval("NAME")%></td>
<td><a onclick="window.open(this.href,this.target,'directories=no,
menubar=no,resizable=no,scrollbars=1,
status=no,toolbar=no,addressbar=no,fullscreen=yes');
return false;" href="View.aspx?name=<%#Eval("NAME")%>">View</a></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</div>
</td>
</tr>
</table>
</ContentTemplate>
</asp1:UpdatePanel>
答案 1 :(得分:0)
在后面的代码中注册,这个代码是在绑定后添加的,例如在你的Page_Load中,(你也可以使用ItemDataBound或ItemCreated委托)。
rpt.DataBind();
foreach (RepeaterItem ri in rpt.Items)
{
if (ri.ItemType == ListItemType.Item || ri.ItemType == ListItemType.AlternatingItem)
{
LinkButton lnkButton1 = (LinkButton)ri.FindControl("lnkButton1");
ScriptManager1.RegisterAsyncPostBackControl(lnkButton1);
}
}
答案 2 :(得分:0)
为什么不去寻找像母子关系这样的东西。您是否需要与向用户显示的子数据进行进一步交互?如果是,请说明性质。
假设您要显示的子数据是简单的数据,只是为了向用户传达相关数据,您可以使用jQuery和转发器来实现您的目标。
您显示主数据的第一个转发器。对于转发器中的每一行,您可以在此处显示一个显示按钮。你这里不需要链接按钮;只是一个简单的锚将做。您必须在其中编写j来切换正确的子数据。
还应重复所有子数据。但最初没有向用户显示。仅应显示该特定子项 - 这适当地由在主中继器上单击的显示锚点触发。休息是所有js / css。
以下是演示该概念的示例项目的链接。