我有一个带有几个文本框的用户控件。我在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();
}
答案 0 :(得分:0)
您正在使用按钮的服务器单击事件。这导致回发发生。确保您用于加载模型弹出窗口的属性未被重置。您可以使用Page.IsPostBack
属性来阻止它在Page_Load事件中。
答案 1 :(得分:0)
我正在使用带有WindowManager的telerik控件。事实证明,我不能在JavaScript中使用ajax模态弹出窗口,除非我将它们放在RadCodeBlock中。完成后,一切都按预期工作。我无法解释引擎盖下发生了什么,但这解决了这个问题。