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属性页面的PageLoad
或PageInit
而是采用内嵌代码和Eval
答
查找AsyncPostBackTriggers,以此来获得客户方控制触发一个UpdatePanel进行部分页面刷新。我绑两个更新板一起这样很多次......
<UpdatePanel>
<Triggers>
<asp:AsyncPostBackTrigger ControlID=”up1” />
</Triggers>
<ContentTemplate>
....
</ContentTemplate>
</UpdatePanel>
我不记得随便你是否能实际的UpdatePanel连接在一起,或者如果你要添加一个触发规则为每一个中继器按钮在你的up1 UpdatePanel
我已经尝试添加一个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