页面没有部分刷新

时间:2011-10-31 16:24:27

标签: asp.net

我使用的是ASP.net 3.5,而Ajax工具包是2.0。以下是我的代码,我的页面部分没有刷新。有没有办法调试问题在哪里?

<form id="form1" runat="server">
    <div>
        <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true">
        </asp:ScriptManager>
        <asp:DropDownList ID="ddl_country" runat="server" Style="width: 100%;" OnSelectedIndexChanged="ddl_country_SelectedIndexChanged"
            AutoPostBack="true">
        </asp:DropDownList>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <div id="div_Port_ddl" runat="server" style="width: 100%;">
                    <asp:DropDownList ID="ddl_port" runat="server" AutoPostBack="True" Width="100%" onchange="SetPortId(this);"
                        OnSelectedIndexChanged="ddl_port_SelectedIndexChanged">
                    </asp:DropDownList>
                </div>
            </ContentTemplate>
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="ddl_country" EventName="SelectedIndexChanged" />
            </Triggers>
        </asp:UpdatePanel>
    </div>
    </form>

4 个答案:

答案 0 :(得分:1)

您可以将更新面板的UpdateMode设置为Conditional。然后在“ddl_Country”的SelectIndexChanged中,您可以调用UpdatePanel1.Update()。

答案 1 :(得分:1)

必须将UpdateMode属性设置为Conditional才能使用触发器。

答案 2 :(得分:1)

可能与onchange="SetPortId(this);"有关。不确定,但尝试在该函数调用之后或之后返回true:

onchange="SetPortId(this);return true;" 

答案 3 :(得分:1)

启用部分页面呈现支持

通过设置ScriptManager控件的EnablePartialRendering属性,可以为页面启用或禁用部分页面呈现。您还可以通过设置ScriptManager控件的SupportsPartialRendering属性来指定页面是否支持部分页面呈现。如果未设置SupportsPartialRendering属性,并且EnablePartialRendering设置属性为true(这是默认值),则使用浏览器的功能确定是否支持部分页面呈现如果未对页面启用部分页面呈现,如果已禁用,或者浏览器不支持,则该页面使用回退行为。该浏览器不支持的操作,该页面使用回退行为。通常会执行异步回发的操作会执行同步回发并更新整个页面。任何UpdatePanel控件都会被忽略,并且它们的内容将被渲染为好像它们没有被UpdatePanel控件所包含。

我认为这不是必需的,因为我没有在我的项目中为同一目的而要求它,但是,尝试使用UpdateMode =“Conditional”。

另请查看此msdn reference以及有关使用partial rendering

的详细信息