none
多个updatepanel的问题,跪求高手解决 RRS feed

  • 问题

  • 我现在想实现在dlistModelClass(dropdownlist)的selectindex改变的情况下更新dlistModel(我现在是用updatepanel1包含的),而在选择dlistModel的某一项时显示或隐藏另外一块区域(我现在是用一个updatepanel2包含的)

    我目前的代码如下

    页面代码如下 :

    <asp:Literal ID="Literal1" runat="server" Text="流程类型"></asp:Literal>
     <asp:DropDownList ID="dlistModelClass" runat="server" OnLoad="dlistModelClass_Load"
     AutoPostBack="True" OnSelectedIndexChanged="dlistModelClass_SelectedIndexChanged"
     Width="155px" AppendDataBoundItems="True" OnDataBound="dlistModelClass_DataBound">
     <asp:ListItem Value="0">全部</asp:ListItem>
     </asp:DropDownList>
    
     <asp:UpdatePanel ID="UpdatePanel1" runat="server" RenderMode="Inline">
     <ContentTemplate>
     <asp:Literal ID="Literal2" runat="server" Text="流程名称"></asp:Literal>
     <asp:DropDownList ID="dlistModel" runat="server" Width="250px"
     AutoPostBack="True" OnSelectedIndexChanged="dlistModel_SelectedIndexChanged">
     </asp:DropDownList>
     </ContentTemplate>
     </asp:UpdatePanel>
    .
    .
    .
     <asp:UpdatePanel ID="UpdatePanel2" runat="server" RenderMode="Inline" UpdateMode="Conditional">
     <ContentTemplate>
     <asp:Literal ID="literal100" runat="server" Text="来文单位" Visible="false"></asp:Literal>
     <asp:TextBox ID="txtFromdept" runat="server" Visible="false"></asp:TextBox>
     </ContentTemplate>
     <Triggers>
     <asp:AsyncPostBackTrigger ControlID="dlistModel" EventName="SelectedIndexChanged" />
     </Triggers>
     </asp:UpdatePanel>
    
    

    后台代码如下 :

     

    protected void dlistModelClass_SelectedIndexChanged(object sender, EventArgs e)
     {
     dlistModel_Load(); //绑定dlistModel控件
     }
     protected void dlistModel_Load()
     {
     。。
     。。
    }
    
    protected void dlistModel_SelectedIndexChanged(object sender, EventArgs e)
    {
     if (dlistModel.SelectedItem.Text.Trim().Equals("收文流程"))
     {
       literal100.Visible = true;
       txtFromdept.Visible = true;
     }
     else
     {
      literal100.Visible = false;
      txtFromdept.Visible = false;
     }
    }
    

    我的代码只能实现 更改dlistModelClass的时候更新updatepanel1,但改变dlistModel的时候不会更新updatepanel2,我调试的时候发现dlistModel的SelectedIndexChanged事件根本不会发生,请问是什么原因,请各位高手帮帮我,该如何才能实现我想要的功能

    又有一个问题,因为上面的代码实现不了我的功能,所以我想到给dlistModel加上个客户端的脚本事件(onchange="showandhide(this);"),结果脚本事件也是不会执行,请问是什么原因?

     继续补充:现在又发现,虽然改变dlistModel不会直接更新updatepanel2,但是在改变dlistModel后再单击页面中的另一个按钮(不在上面的代码中,也不在updatepanel中)导到页面回发的时候却会更新updatepanel2,请问这是什么原因?

    最重要的是,我该如何才能实现我想要的功能(不刷页面的情况下)

    2010年4月22日 3:01

答案

  • 检查下你的

    onchange="showandhide(this);"

    可能你的这个JS函数,使用RETRUN返回的问题,你先把onchange客户端事件去掉试试


    努力+方法=成功
    2010年4月22日 3:22

全部回复

  • 检查下你的

    onchange="showandhide(this);"

    可能你的这个JS函数,使用RETRUN返回的问题,你先把onchange客户端事件去掉试试


    努力+方法=成功
    2010年4月22日 3:22
  • 呵呵,多谢回答。

    我就是因为实现不了才加的那个脚本事件,我刚改了问题,请您看下

    2010年4月22日 3:24
  • 你的脚步事件中不要使用RETURN返回,你检查下


    努力+方法=成功
    2010年4月22日 3:30
  • 我的脚本事件里没有Return,只是显示和隐藏updatepanel2中的那两个控件

    现在问题是根本不会发生脚本事件.这点我搞不明白

    2010年4月22日 3:36
  • 郁闷了,今天下行就行了,能执行dlistModel的selectedindex事件了,问题也解决了,谢谢1楼的帮忙.

    可是我根本没改代码啊,为什么上午不行,这算什么事啊

    2010年4月22日 5:57