ASP .NET控制另一个更新面板中继器按钮的更新面板

问题描述:

我有两个更新面板,第一个更新面板(up1)包含一个重复控制按钮的重复控制器。当其中一个按钮在up1中单击时,我只是想使用从up1中的按钮传递的参数来更新第二个更新面板(up2)。 基本上,每个按钮都有一个对话ID,所以当点击up2时,将获得与该ID对话的所有消息。由于其他功能,需要有两个更新面板。ASP .NET控制另一个更新面板中继器按钮的更新面板

<asp:ScriptManager ID="ScriptManager1" EnablePageMethods="true" EnablePartialRendering="true" runat="server" > 
</asp:ScriptManager> 
<asp:UpdatePanel runat="server" ID="up1" OnLoad="up1_Load"> 
    <ContentTemplate> 
     <asp:Repeater ID="Repeater1" runat="server"> 
      <ItemTemplate> 
       <asp:Button ID="Button1" runat="server" 
        CommandName="conversationID" 
        CommandArgument='<%# Eval("conversation_id") %>' /> 
      </ItemTemplate> 
     </asp:Repeater> 
    </ContentTemplate> 
</asp:UpdatePanel> 

<asp:UpdatePanel ID="up2" runat="server"> 
    <ContentTemplate> 
     <asp:Repeater ID="Repeater2" runat="server"> 
      <ItemTemplate> 
       <p><%#Eval("message")%></p> 
      </ItemTemplate> 
     </asp:Repeater> 
    </ContentTemplate> 
</asp:UpdatePanel> 

我试图传递命令的参数在后面的代码,但它只是不工作!请有人指出我正确的方向?

非常感谢

由于UpdatePanel的是动态内容(例如AJAX),来更新所述第二面板中的最佳位置是在客户端(例如,以JavaScript),而不是在后台代码在所述服务器。

此外,如果您的.aspx文件中没有代码块,您的代码将更干净。例如,在你的代码申报button1一个Button变量后面设置在CommandArgument属性页面的PageLoadPageInit而是采用内嵌代码和Eval

+0

我已经尝试添加一个onclick事件按钮,它将JavaScript对话框中的对话ID号传递给一个函数。然后在我的codebehind内调用更新updatepanel的方法。例如: 函数CallMyMethod(cid){PageMethods.MyMethod(cid,MyMethod_Result); } 的问题是,它调用的webmethod子程序具有“共享”进行通信,例如: _ 公共共享子的MyMethod(BYVAL识别符作为整数) ..get SQL数据,结合在中继器updatepanel2 End Sub – user80632 2009-07-27 11:05:18

查找AsyncPostBackTriggers,以此来获得客户方控制触发一个UpdatePanel进行部分页面刷新。我绑两个更新板一起这样很多次......

<UpdatePanel> 
    <Triggers> 
    <asp:AsyncPostBackTrigger ControlID=”up1” /> 
    </Triggers> 
    <ContentTemplate> 
    .... 
    </ContentTemplate> 
</UpdatePanel> 

我不记得随便你是否能实际的UpdatePanel连接在一起,或者如果你要添加一个触发规则为每一个中继器按钮在你的up1 UpdatePanel