用户控件不显示值
本文关键字:显示 控件 用户 | 更新日期: 2023-09-27 18:27:17
我有一个带有几个文本框的用户控件。我在UC上创建了属性,将文本框设置为这些值。
在我的页面上,我在用户控件的面板内有一个占位符,我将其显示为弹出窗口。当我加载用户控件时,我设置了它的属性,但当弹出窗口显示时,没有任何文本框设置其值。
不确定我哪里错了,这里有一些代码:
页码:
public void LoadFiguresControl()
{
var mgr = new CompaniesBusinessManager();
WebParts_CreateOwnershipFigures fig = (WebParts_CreateOwnershipFigures)Page.LoadControl("~/WebParts/CreateOwnershipFigures.ascx");
if (ddlEditCompanies.SelectedValue != null && ddlEditCompanies.SelectedValue != "")
{
var cc = mgr.GetOwnershipCompanies(rlabs.letsema_re.Domain.CompanyQueries.GetOwnershipCompaniesType.By_Id, int.Parse(ddlEditCompanies.SelectedValue), -1).FirstOrDefault();
if (cc != null)
{
fig.OwnershipCompanyId = cc.Id;
fig.CompanyTitle = mgr.GetCompanies(cc.CompanyId.Value).FirstOrDefault().Name;
fig.Shareholding = (cc.ShareholderPerc.HasValue ? cc.ShareholderPerc.Value : 0);
fig.Black = (cc.BlackPerc.HasValue ? cc.BlackPerc.Value : 0);
fig.RSA = (cc.RSAPerc.HasValue ? cc.RSAPerc.Value : 0);
}
}
PlaceHolder1.Controls.Add(fig);
}
用户控件上的属性示例:
public string CompanyTitle
{
get
{
return lblOwnership.Text;
}
set
{
lblOwnership.Text = value;
}
}
并显示弹出窗口:
protected void btnEdit_Click(object sender, EventArgs e)
{
LoadFiguresControl();
ModalPopupExtender1.Show();
}
您使用的是按钮的服务器点击事件。这会导致发生回发。确保您用于加载模型弹出窗口的属性不会被重置。您可以使用Page.IsPostBack
属性来防止它出现在Page_Load事件中。
我使用的是带有WindowManager的telerik控件。事实证明,我不能将ajax模式弹出窗口与JavaScript一起使用,除非我将它们放在RadCodeBlock中。做完这些之后,一切都如预期的那样。我无法解释引擎盖下发生了什么,但这解决了问题。