Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.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中更新用户控件?_Asp.net_User Controls_Updatepanel - Fatal编程技术网

Asp.net 如何在UpdatePanel中更新用户控件?

Asp.net 如何在UpdatePanel中更新用户控件?,asp.net,user-controls,updatepanel,Asp.net,User Controls,Updatepanel,我想刷新UpdatePanel中的用户控件,但我也想用不同的属性值刷新它 <asp:UpdatePanel runat=server ID=up1> <Triggers> <asp:AsyncPostBackTrigger controlid="but01" eventname="Click" /> </Triggers> <ContentTemplate> <asp:Button runa

我想刷新UpdatePanel中的用户控件,但我也想用不同的属性值刷新它

<asp:UpdatePanel runat=server ID=up1>
<Triggers>
            <asp:AsyncPostBackTrigger controlid="but01" eventname="Click" />
        </Triggers>
<ContentTemplate>
<asp:Button runat="server" Text="Test" ID="but01"  />   
<UC:Uc runat=server ID="Uc1" />
</ContentTemplate>
</asp:UpdatePanel>



Codebehind for but01 click is
void but01_Click(object sender, EventArgs e)
{

this.Uc1.ID = 1;
this.Uc1.Length = 50;
}
ascx头是

<%@ Control Language="c#" Inherits="Admin.Web.Controls.Uc1" AutoEventWireup="true" Codebehind="Uc1.ascx.cs"  %> 

当我在页面加载期间从aspx页面启动用户控制时,一切正常。从控制面板回发时,将刷新用户控件(使用标签+时间进行检查),但不会向用户控件传递任何值。

删除触发器标签

将asp:按钮移动到UpdatePanel外部

更新:

请将控件的setter和getter设置为-

public string Subject
{
   get  { return txtSubject.Text; }
   set  { txtSubject.Text = value; }
}

你能发布用户控件的代码吗?至少是处理
Length
ID
在此上下文中的含义的部分,以及可能会更改这些值的任何代码隐藏代码。@AnnL。我已发布代码隐藏代码。在usercontrol中看不到对Length属性的引用。或者你的意思是你试图以同样的方式使用这些其他属性?我使用的方式与没有任何区别的方式相同请检查我的更新答案。按照我建议的方式设置自定义控件内的所有属性后,它就可以工作了。请确保but01 click事件已附加到but01_click。实际上,您是对的-属性必须直接链接到控件(txtSubject),并且它不允许将值分配给本地变量,然后在页面加载中使用它。我不明白为什么?Uc1.Page\u Load在单击之前先被调用。即使您通过but01\u Click将值传递给Uc1,它们也只是存储在私有字符串值中,不做任何操作。
public string Subject
{
   get  { return txtSubject.Text; }
   set  { txtSubject.Text = value; }
}