asp.net 更新面板无法正常工作



我使用 UpdatePanel 刷新带有一些搜索结果的数据网格,但不起作用,整个页面进入回发状态。 我希望有人可以帮助我,不能让它正常工作。.谢谢。这是我的代码:

            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
            <table width="100%" border="0" cellspacing="0" cellpadding="0">
                <tr>
                    <td align="left" class="pageTitle" valign="top">
                        <twc:LocalizedLiteral Text="CRMcontxt6" runat="server" />
                    </td>
                </tr>
                    <tr align="left" style="background-color: #9bbbe3">
                        <td align="left" colspan="3">
                            <asp:Label ID="lblSearch" Height="15" runat="server" Font-Bold="true" Font-Size="11"></asp:Label>
                            <asp:TextBox Width="500px" ID="Search" autoclick="BtnSearch" runat="server" CssClass="boxDesign" />
                            <asp:LinkButton  ID="BtnSearch" runat="server" CssClass="save" />
                         </td>
                    </tr>
                </table>
                   <asp:datagrid id="searchresults" runat="server">
           </ContentTemplate>
             <Triggers>
                <asp:AsyncPostBackTrigger ControlID="BtnSearch" />
            </Triggers>
            </asp:UpdatePanel>

这看起来像一个熟悉的.NET Bug。在 LinkButton 上设置 ClientIDMode="AutoID" 应该可以修复它(顺便说一下,您可以删除触发器。 不需要)。

一些解决方案:

a. 尝试在 UpdatePanel 中提供UpdateMode = Conditional,并尝试(当您给出触发器时)你必须定义这个 )

b. 尝试删除<table>,并将其替换为<div>,有时更新面板对表标签不友好。

三.如果上述不起作用,请首先尝试删除触发器和更新模式条件,看看是否有效。因为如果这不起作用,则意味着更新面板中的内容有问题。您可能希望从一些控件开始,以深入了解您的问题。

d.我看到用户控件被调用 - 检查这些用户控件中是否正确放置了更新面板。

在 UpdatePanel 中使用以下命令:

UpdateMode="Conditional" ChildrenAsTriggers="true"

检查您的 HTML 源代码是否没有 2 个或更多 <form> 标记。asp.net 页面通常应该只有一个<form>标记。

虽然这个问题到目前为止一直没有答案,但我遇到了类似的问题,但发现了更新面板不起作用的原因:

当您在某个 HTML 段中具有 <form> 标记,然后将该 HTML 片段插入母版页的现有 <form> 标记中时,您会遇到问题。每次运行母版页的子页并单击提交按钮时,按钮应运行的代码都不会执行。相反,尽管有更新面板,整个页面都会刷新,并且它还可能在页面的 URL 中添加查询字符串。

母版页的嵌套<form>标记是导致此问题的原因。一旦您删除了额外的<form>标签,一切应该都可以正常工作。

希望这对某人有所帮助。

您错过了触发事件。触发器应如下所示

<Triggers>
            <asp:AsyncPostBackTrigger ControlID="BtnSearch" EventName="Click" />
</Triggers>

不要忘记将更新面板的UpdateMode属性设置为Conditional

下面是一个参考 :: 在 ASP.NET 4.0 C# 中的 UpdatePanel 中使用触发器

相关内容

  • 没有找到相关文章

最新更新