Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.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
C# usercontrol中的UpdatePanel不更新客户端控件_C#_Asp.net_Ajax - Fatal编程技术网

C# usercontrol中的UpdatePanel不更新客户端控件

C# usercontrol中的UpdatePanel不更新客户端控件,c#,asp.net,ajax,C#,Asp.net,Ajax,我已经为这件事挠头好几个小时了。我有一个用户控件,它有标签、文本框等。所有这些都包装在更新面板中。我在uc中有一个按钮,单击该按钮时,它会更改标签 当我将此uc放入表单/页面时,无论我做什么,我都看不到标签的更改。它在服务器端更改,但在客户端更改。我总是尝试updatemode,有条件地使用触发器,我尝试了一切。scriptmanager很好,如果我将代码复制到它自己的页面,它就可以正常工作。scriptmanager在页面上,而不是uc,所以不是它 有人举过这样的例子吗 aspx: 大师: &

我已经为这件事挠头好几个小时了。我有一个用户控件,它有标签、文本框等。所有这些都包装在更新面板中。我在uc中有一个按钮,单击该按钮时,它会更改标签

当我将此uc放入表单/页面时,无论我做什么,我都看不到标签的更改。它在服务器端更改,但在客户端更改。我总是尝试updatemode,有条件地使用触发器,我尝试了一切。scriptmanager很好,如果我将代码复制到它自己的页面,它就可以正常工作。scriptmanager在页面上,而不是uc,所以不是它

有人举过这样的例子吗

aspx:

大师:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="KezberProjectManager.master.cs" Inherits="KezberProjectManager.KezberProjectManager" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>

    <!-- Le styles -->
    <link href="assets/css/bootstrap.css" rel="stylesheet"/>
    <link href="assets/css/bootstrap-responsive.css" rel="stylesheet"/>
    <link href="assets/css/kezblu.styles.css" rel="stylesheet"/>

    <style type="text/css">

    </style>
    <!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
    <!--[if lt IE 9]>
      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.0.min.js"></script>
    <script type="text/javascript" src="assets/js/kezcommon.js"></script>
    <script type="text/javascript">

        $(document).ready
    (
        function () {

            createAutoClosingAlert('.success_alert', 6000);
        }
    );

        function createAutoClosingAlert(selector, delay) {
            var alert = $(selector).alert();
            window.setTimeout(function () { $(alert).slideUp() }, delay);
        }

</script>  

    <asp:ContentPlaceHolder ID="head" runat="server">
    </asp:ContentPlaceHolder>
</head>
<body>
    <form id="form1" runat="server">

    <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true">
    </asp:ScriptManager>
           <div class="navbar navbar-inverse navbar-fixed-top">
      <div class="navbar-inner">
        <div class="container">
          <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </a>
          <a class="brand" href="default.aspx">KezBlu</a>
          <div class="nav-collapse collapse">
            <ul class="nav">

<asp:Repeater runat="server" id="MenuRepeater">
  <headertemplate>

  </headertemplate>
  <itemtemplate>
     <%# Eval("Content") %>
  </itemtemplate>
  <footertemplate>

  </footertemplate>
 </asp:Repeater>

              </ul>
             <div id="auth">
                 <asp:HyperLink id="lnkSignIn" runat="server">Sign In</asp:HyperLink>
                 <br />
                 <asp:LinkButton ID="lnkSignOut" runat="server" onclick="lnkSignOut_Click">Sign Out</asp:LinkButton>

             </div>

          </div><!--/.nav-collapse -->
        </div>
      </div>
    </div>


    <div id="wrap">
       <div id="content">
           <div id="alerts">
               <div class="bs-docs-example">
              <div runat="server"  id="success_alert" class="success_alert alert alert-success fade in">
                <button type="button" class="close" data-dismiss="alert">&times;</button>
                   <div runat="server" id="success_alert_text">
                </div>
              </div>
             </div>
              <div class="bs-docs-example">
              <div runat="server" id="error_alert" class="error_alert alert alert-error fade in">
                <button type="button" class="close" data-dismiss="alert">&times;</button>
                <div runat="server" id="error_alert_text">
                </div>
              </div>
             </div>
            </div>
       <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">

       </asp:ContentPlaceHolder>
       </div>


    </div>
    </form>
      <!-- Le javascript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->

    <script type="text/javascript" src="assets/js/bootstrap.min.js"></script>
</body>
</html>

$(文件)。准备好了吗
(
函数(){
创建自动关闭警报('.success\u alert',6000);
}
);
函数createAutoClosingAlert(选择器,延迟){
var-alert=$(选择器).alert();
setTimeout(函数(){$(警报).slideUp()},延迟);
}
登录
退出 &时代; &时代;
我认为您的用户控件中缺少公开UpdateMode属性和内部UpdatePanel控件的Update方法的代码。您需要这样做,以便外部源可以显式刷新用户控件的内容。您需要以下内容:

public UpdatePanelUpdateMode UpdateMode
{
    get { return this.UpdatePanel1.UpdateMode; }
    set { this.UpdatePanel1.UpdateMode = value; }
}

public void Update()
{
    this.UpdatePanel1.Update();
}
现在可以将用户控件添加到.aspx页面,并以声明方式设置内部UpdatePanel控件的UpdateMode属性:

<div>
    <uc1:ProjectView ID="ProjectView1" runat="server" UpdateMode="Conditional" />
</div>

以下文件对此过程进行了详细说明:


你能把你的代码放到这篇文章里吗?很难说不看。好吧,我添加了它,但实际上,它归结为,aspx中的一个用户控件,用户控件有一个更改标签的按钮。尝试将
conditionalmode
更改为always,并设置
ChildrenAsTriggers=“true”
相信我,我已经尝试过了。我只是再试了一次,它仍然不起作用。
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="KezberProjectManager.master.cs" Inherits="KezberProjectManager.KezberProjectManager" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>

    <!-- Le styles -->
    <link href="assets/css/bootstrap.css" rel="stylesheet"/>
    <link href="assets/css/bootstrap-responsive.css" rel="stylesheet"/>
    <link href="assets/css/kezblu.styles.css" rel="stylesheet"/>

    <style type="text/css">

    </style>
    <!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
    <!--[if lt IE 9]>
      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.0.min.js"></script>
    <script type="text/javascript" src="assets/js/kezcommon.js"></script>
    <script type="text/javascript">

        $(document).ready
    (
        function () {

            createAutoClosingAlert('.success_alert', 6000);
        }
    );

        function createAutoClosingAlert(selector, delay) {
            var alert = $(selector).alert();
            window.setTimeout(function () { $(alert).slideUp() }, delay);
        }

</script>  

    <asp:ContentPlaceHolder ID="head" runat="server">
    </asp:ContentPlaceHolder>
</head>
<body>
    <form id="form1" runat="server">

    <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true">
    </asp:ScriptManager>
           <div class="navbar navbar-inverse navbar-fixed-top">
      <div class="navbar-inner">
        <div class="container">
          <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </a>
          <a class="brand" href="default.aspx">KezBlu</a>
          <div class="nav-collapse collapse">
            <ul class="nav">

<asp:Repeater runat="server" id="MenuRepeater">
  <headertemplate>

  </headertemplate>
  <itemtemplate>
     <%# Eval("Content") %>
  </itemtemplate>
  <footertemplate>

  </footertemplate>
 </asp:Repeater>

              </ul>
             <div id="auth">
                 <asp:HyperLink id="lnkSignIn" runat="server">Sign In</asp:HyperLink>
                 <br />
                 <asp:LinkButton ID="lnkSignOut" runat="server" onclick="lnkSignOut_Click">Sign Out</asp:LinkButton>

             </div>

          </div><!--/.nav-collapse -->
        </div>
      </div>
    </div>


    <div id="wrap">
       <div id="content">
           <div id="alerts">
               <div class="bs-docs-example">
              <div runat="server"  id="success_alert" class="success_alert alert alert-success fade in">
                <button type="button" class="close" data-dismiss="alert">&times;</button>
                   <div runat="server" id="success_alert_text">
                </div>
              </div>
             </div>
              <div class="bs-docs-example">
              <div runat="server" id="error_alert" class="error_alert alert alert-error fade in">
                <button type="button" class="close" data-dismiss="alert">&times;</button>
                <div runat="server" id="error_alert_text">
                </div>
              </div>
             </div>
            </div>
       <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">

       </asp:ContentPlaceHolder>
       </div>


    </div>
    </form>
      <!-- Le javascript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->

    <script type="text/javascript" src="assets/js/bootstrap.min.js"></script>
</body>
</html>
public UpdatePanelUpdateMode UpdateMode
{
    get { return this.UpdatePanel1.UpdateMode; }
    set { this.UpdatePanel1.UpdateMode = value; }
}

public void Update()
{
    this.UpdatePanel1.Update();
}
<div>
    <uc1:ProjectView ID="ProjectView1" runat="server" UpdateMode="Conditional" />
</div>