Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET从另一个updatepanel中的repeater按钮控制updatepanel_Asp.net_Ajax_Updatepanel - Fatal编程技术网

ASP.NET从另一个updatepanel中的repeater按钮控制updatepanel

ASP.NET从另一个updatepanel中的repeater按钮控制updatepanel,asp.net,ajax,updatepanel,Asp.net,Ajax,Updatepanel,我有两个更新面板,第一个更新面板(up1)包含一个中继器控件,它只是重复一个按钮控件。在up1中单击其中一个按钮时,我只想使用up1中按钮传递的参数更新第二个更新面板(up2)。 基本上,每个按钮都有一个会话ID,因此当单击up2时,将从具有该ID的会话中获取所有消息。由于其他功能,需要有两个更新面板 <asp:ScriptManager ID="ScriptManager1" EnablePageMethods="true" EnablePartialRendering="true" r

我有两个更新面板,第一个更新面板(up1)包含一个中继器控件,它只是重复一个按钮控件。在up1中单击其中一个按钮时,我只想使用up1中按钮传递的参数更新第二个更新面板(up2)。 基本上,每个按钮都有一个会话ID,因此当单击up2时,将从具有该ID的会话中获取所有消息。由于其他功能,需要有两个更新面板

<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
变量,并在页面的
PageLoad
PageInit
中设置CommandArgument属性,而不是使用内联代码和
Eval

查找AsyncPostBackTriggers,以获取客户端控件来触发UpdatePanel来执行部分操作页面刷新。我已经多次用这种方式将两个更新面板绑在一起

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

....

我不记得是否可以将实际的UpdatePanel链接在一起,或者是否必须为up1 UpdatePanel中的每个repeater按钮添加一个触发规则

我已经尝试向按钮添加一个onclick事件,该事件将会话id号传递给javascript代码中的函数。然后在我的codebehind中调用一个方法来更新updatepanel。例如:函数CallMyMethod(cid){PageMethods.MyMethod(cid,MyMethod_Result)}问题是它调用的webmethod子例程必须“共享”才能进行通信,例如:Public shared Sub MyMethod(ByVal cid为整数)…获取sql数据,绑定到updatepanel2 End Sub中的repeater问题是,当我尝试绑定数据时,会出现以下错误:无法从共享方法中引用类的实例成员