none
用Button 控制 UpdatePanel1.Update();报错 RRS feed

  • 问题

  • 错误:Sys.WebForms.PageRequestManagerServerErrorException 如果UpdateMode 设置为Conditional,则只能在ID”UpdatePanel1”UpdatePanel 上调用Update方法。

    <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />

            <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always">
            <ContentTemplate>
                <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
            </ContentTemplate>
            </asp:UpdatePanel>

    可是UpdateMode="Always" 设置了啊?

    • 已移动 孟宪会Moderator 2009年8月27日 0:56 (发件人:.NET Framework 一般性问题讨论区)
    2009年8月26日 7:32

答案

全部回复

  • 你好,我刚才运行了你的代码,没有问题。
    jon.valett@gmail.com
    2009年8月26日 7:47
    版主
    • 你好!
      UpdateMode="Always" 不需要调用Update(); 它会自动调用的
      UpdateMode 设置为Conditional, 才需要调用的 指定哪个updatepanel 更新
    2009年8月26日 7:55
  • protected void Button1_Click(object sender, EventArgs e)
        {
            UpdatePanel1.Update();
        }
    用这个UpdatePanel1.Update();报错
    2009年8月26日 9:13
  • 我有两个UpdatePanel1 和UpdatePanel2
    UpdatePanel1里面放listview,每个item里面有个linkbutton ,我想按下linkbutton ,UpdatePanel2更新为详细信息。
    2009年8月26日 9:14
  • 你好,Button事件中不需要Update,你只要重新绑定详细信息就自动更新了。
    jon.valett@gmail.com
    2009年8月26日 9:31
    版主
  • 还是有问题啊。
    有两个UpdatePanel1里面ListView1,UpdatePanel2里面ListView2
    ListView1的每个item有个:
    <asp:LinkButton ID="LinkButton1" runat="server" CommandArgument='<%# Eval("ProductReleaseID") %>'
                onclick="LinkButton1_Click">
    cs:
    protected void LinkButton1_Click(object sender, EventArgs e)
        {
            Label12.Text = ((LinkButton)sender).CommandArgument;
            Label11.Text = ((LinkButton)sender).CommandArgument;

            LinqDataSource2.WhereParameters.Add("IAProductReleaseID", TypeCode.Int32, ((LinkButton)sender).CommandArgument);
            ListView2.DataBind();
        }

    Listview2 里面的<asp:Label ID="Label11" runat="server" Text="Label"></asp:Label>到是每次可以更新的,但ListView2只第一次按有用,后面就都没有用了?
    怎么回事啊?奇怪的

    2009年8月27日 1:41
  • 好像是  LinqDataSource2.WhereParameters.Add("IAProductReleaseID", TypeCode.Int32, "14");的问题
    LinqDataSource2.WhereParameters.Add("IAProductReleaseID", TypeCode.Int32, "14");只能执行一次

    我在页面上设置了3个按钮:
    protected void Button1_Click(object sender, EventArgs e)
        {
            LinqDataSource2.WhereParameters.Add("IAProductReleaseID", TypeCode.Int32, "1");
            LinqDataSource2.DataBind();
            ListView2.DataSourceID = "LinqDataSource2";
            ListView2.DataBind();
        }
        protected void Button2_Click(object sender, EventArgs e)
        {
            LinqDataSource2.WhereParameters.Add("IAProductReleaseID", TypeCode.Int32, "14");
            LinqDataSource2.DataBind();
            ListView2.DataSourceID = "LinqDataSource2";
            ListView2.DataBind();
        }
        protected void Button3_Click(object sender, EventArgs e)
        {
            LinqDataSource2.WhereParameters.Add("IAProductReleaseID", TypeCode.Int32, "15");
            LinqDataSource2.DataBind();
            ListView2.DataSourceID = "LinqDataSource2";
            ListView2.DataBind();
        }

    只有第一次按可以,后面按就没有效果了。
    2009年8月27日 1:58
  • 你好,使用一个UpdatePanel,里面放你的两个控件!
    jon.valett@gmail.com
    2009年8月27日 2:09
    版主