按钮回发获取错误

时间:2014-08-11 14:40:49

标签: c# asp.net button postback

我有一个包含listview的updatepanel。此面板以10秒的间隔刷新,listview源更新并重新加入。我的列表视图有一些图像按钮,这就是问题所在。当我单击任何listview按钮时,出现错误:

  
    

“无效的回发或回调参数。”错误。

  

我正在尝试在我的文件中看到的所有内容,不,我不会将验证设置为false。

这是我列表的简化模板。

<asp:UpdatePanel runat="server" ID="pnlRegistro" ClientIDMode="Static" OnLoad="pnlRegistro_Load">
    <ContentTemplate>
        <asp:ListView runat="server" ID="lvRegistro" OnPreRender="lvRegistro_PreRender" >
            <LayoutTemplate>
                <!-- Unread notification count -->
                <span runat="server" id="spanRegistroCount" class="mws-dropdown-notif">
                    <asp:Label ID="lblRegistroCount" runat="server" Text="0"></asp:Label>
                </span>
            </LayoutTemplate>
            <ItemTemplate>
                <li class="<%# Convert.ToInt32(Eval("RegistroHorarioId"))==0?"read":"unread"%>">
                    <a>
                        <div style="width: 80%; float: left;">
                            <span class="message" <%#Eval("SpanColor")%>>
                                <%#Eval("Status")%>
                            </span>
                        </div>
                        <div style="float: right">
                            <asp:ImageButton runat="server" ID="btnRegistro" OnClick="btnRegistro_Click"/>
                        </div>
                    </a>
                </li>
            </ItemTemplate>
        </asp:ListView>
    </ContentTemplate>
</asp:UpdatePanel>

我该怎么做才能解决此错误并触发“btnRegistro_Click”事件?

1 个答案:

答案 0 :(得分:0)

更新面板用于更新部分页面而不是完整回发。

因此,您必须添加 PostBackTrigger 同步或异步,因为您正在使用更新面板,并且在触发器中定义更新面板事件以避免完全回发,因此很可能您需要asnc postback触发。

在内容模板结束标记(</ContentTemplate>)之后为按钮事件添加触发器:

 </ContentTemplate>
 <Triggers> 
 <asp:AsyncPostBackTrigger ControlID="btnRegistro" EventName="Click" /> 
</Triggers>
</asp:UpdatePanel>

您还应该阅读Understanding ASP.NET AJAX UpdatePanel Triggers