ASPX在事件触发器上重新运行整个页面代码

时间:2012-06-18 21:41:24

标签: c# asp.net

我在ASPX上使用EXT.NET。我之前从未遇到过这个问题。当我有一个事件触发器时,页面重新运行所有代码(尽管它实际上并没有“重新加载”页面)。据我所知,所有其他页面都没有发生这种情况。示例代码:

protected void gSelectApplied(object sender,EventArgs e)
{
    Ext.Net.ComboBox box = (Ext.Net.ComboBox)sender;
    string name = box.ID;
    switch (name)
    {
        case "gPreviousApplied":
            {
                gPreviousAppliedfunded.Hidden = box.SelectedItem.Value.ToString() == "Yes" 
                    ? false 
                    : true;
                break;
            }
        case "gPreviousAppliedfunded":
            {
                gPreviousApplied.Hidden = box.SelectedItem.Value.ToString() == "Yes"
                    ? false
                    : true;
                break;
            }

    }

}

这会执行并且应该隐藏页面上的元素。然而,这不会发生,因为它将隐藏设置为true一会儿(甚至不可见),然后重置。当我在一般页面中设置断点时,它会在触发事件时触及断点,然后触发事件代码本身。

前端看起来像这样:

<ext:FormPanel ID="Sec5" runat="server" AutoHeight="true" BodyBorder="false"
            Layout="FormLayout" LabelAlign="Right" LabelPad="25" LabelWidth="220" Cls="blue"
            PaddingSummary="5px 0px 5px 115px" Border="false" BaseCls=".uData" Hidden="false">
            <Items>
                <ext:ComboBox FieldLabel="someField" ID="gPreviousApplied"
                    runat="server" OnDirectSelect="gSelectApplied">
                    <Items>
                        <ext:ListItem Text="Yes" />
                        <ext:ListItem Text="No" />
                    </Items>
                </ext:ComboBox>
                <ext:ComboBox FieldLabel="something" ID="gPreviousAppliedfunded"
                    runat="server">
                    <Items>
                        <ext:ListItem Text="Yes" />
                        <ext:ListItem Text="No" />
                    </Items>
                </ext:ComboBox>
                <ext:ComboBox FieldLabel="somethingelse" ID="gPreviousApplied" 
                    runat="server">
                    <Items>
                        <ext:ListItem Text="Yes" />
                        <ext:ListItem Text="No" />
                    </Items>
                </ext:ComboBox>
            </Items>
        </ext:FormPanel>
    </Items>
</ext:Panel>

1 个答案:

答案 0 :(得分:0)

请检查aspx页面中autoeventwireup是否设置为false。 还要检查page_load中是否有任何内容将元素设置为false。 在page_load函数中使用page.ispostback