当前位置: 首页 > 面试题库 >

UpdatePanel中的DropDownList

云焱
2023-03-14
问题内容

我有个问题。

在我的项目中,我已经在一个updatepanel中放置了一个下拉列表。我要做的是从下拉列表中选择一个值,并在会话中使用它。

但是无论我做什么,由于不选中“ Enable AutoPostBack”,它总是给我空值。当我这样做时,它将刷新页面,所以这不是我想要的。

我怎么解决这个问题?

有任何想法吗…


问题答案:

听起来您可能未正确使用UpdatePanel功能。如果您将UpdatePanel设置为在子事件触发事件时进行更新,则仅UpdatePanel应该刷新,而不刷新整个页面。下面的代码的行为似乎与您想要的类似。更改下拉菜单时,只有更新面板会发回到服务器上,刷新页面时,您可以从会话中获取值。

ASPX代码

<form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <div>
        Current Time: <asp:Label ID="lblTime" runat="server" /><br />
        Session Value: <asp:Label ID="lblSessionValue" runat="server" /><br />
        <br />
        <asp:UpdatePanel ID="upSetSession" runat="server">
            <ContentTemplate>
                <asp:DropDownList ID="ddlMyList" runat="server" 
                    onselectedindexchanged="ddlMyList_SelectedIndexChanged"
                    AutoPostBack="true">
                    <asp:ListItem>Select One</asp:ListItem>
                    <asp:ListItem>Maybe</asp:ListItem>
                    <asp:ListItem>Yes</asp:ListItem>
                </asp:DropDownList>
            </ContentTemplate>
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="ddlMyList" 
                    EventName="SelectedIndexChanged" />
            </Triggers>
        </asp:UpdatePanel>
    </div>
</form>

后面的代码

    protected void Page_Load(object sender, EventArgs e)
    {
        this.lblTime.Text = DateTime.Now.ToShortTimeString();
        if (Session["MyValue"] != null) 
            this.lblSessionValue.Text = Session["MyValue"].ToString();
    }

    protected void ddlMyList_SelectedIndexChanged(object sender, EventArgs e)
    {
        Session.Remove("MyValue");
        Session.Add("MyValue", this.ddlMyList.SelectedValue);
    }


 类似资料:
  • 问题内容: 是否有类似UpdatePanel(在ASPX中)的Razor? 我想每30秒自动刷新一次数据(例如表格,图表等)。类似于每30秒单击以下链接: 编辑: 我可能应该补充说,动作链接呈现了部分视图。 cshtml中的代码: 控制器中的代码: 如果PartielView可以刷新自身,它将被创建。 问题答案: 您可以使用Jquery尝试类似以下的操作(虽然尚未测试) 上面的代码应放置在包含页面

  • 问题内容: 我从UpdatePanel内部的外部javascript文件运行javascript时遇到问题。我试图让一个颜色选择器在ListView内部工作。ListView在UpdatePanel内部。 我正在使用这个颜色选择器。 这是我将其范围缩小到的内容: 如果我在之外的文本框上使用颜色选择器,则在所有回发中它都可以正常工作。 如果我在内的文本框上使用颜色选择器,它将起作用,直到执行异步回发

  • 问题内容: 我正在从发出请求,该请求需要90秒钟以上的时间。我收到此超时错误: Microsoft JScript运行时错误:Sys.WebForms.PageRequestManagerTimeoutException:服务器请求超时。 有谁知道在通话超时之前是否有增加时间的方法? 问题答案: ScriptManager上有一个属性,可让您以秒为单位设置超时。默认值为90秒。

  • 问题内容: 我们有一个页面,其中包含大量的jQuery(约2000行),我们想减少b / c,这是维护的噩梦,在服务器上维护起来可能更容易。我们已经考虑过为此使用UpdatePanel。但是,我们不喜欢UpdatePanel将整个页面发送回服务器的事实。 问题答案: 不要移动到UpdatePanels。使用jQuery后,性能下降将是站不住脚的。尤其是在您听起来复杂的页面上。 如果您有2,000行

  • 问题内容: 我正在使用UpdatePanel在页面中异步调用按钮单击事件,该页面调用另一个类中的方法,该方法在输出中写出XML文件。有没有办法用JQuery而不是UpdatePanel做到这一点? 问题答案: 使用jQuery处理click事件。然后,使用此技术在后台代码中调用page方法。在这里,您可以编写XML文件或执行其他任何操作。

  • 问题内容: 我遇到了我认为应该是一个非常简单的问题,但是对于我的一生,我看不到我的问题。问题与ScriptManager.RegisterStartupScript有关,我之前已经使用过多次。 我遇到的情况是,我已经将一个自定义Web控件插入到页面中。控件(和一个或两个其他控件)嵌套在UpdatePanel中。它们被插入到页面上的PlaceHolder上: 这是页面上唯一的更新面板。 该控件需要运