Asp.net 如何在UpdatePanel中更新用户控件?
我想刷新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
<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; }
}