用户控件不显示值

时间:2013-08-11 11:04:51

标签: c# asp.net ajax

我有一个带有几个文本框的用户控件。我在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();
    }

2 个答案:

答案 0 :(得分:0)

您正在使用按钮的服务器单击事件。这导致回发发生。确保您用于加载模型弹出窗口的属性未被重置。您可以使用Page.IsPostBack属性来阻止它在Page_Load事件中。

答案 1 :(得分:0)

我正在使用带有WindowManager的telerik控件。事实证明,我不能在JavaScript中使用ajax模态弹出窗口,除非我将它们放在RadCodeBlock中。完成后,一切都按预期工作。我无法解释引擎盖下发生了什么,但这解决了这个问题。