用户控件不显示值

本文关键字:显示 控件 用户 | 更新日期: 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中。做完这些之后,一切都如预期的那样。我无法解释引擎盖下发生了什么,但这解决了问题。