1

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

2 回答 2

0

我正在使用带有 WindowManager 的 Telerik 控件。事实证明,除非我将它们放在 RadCodeBlock 中,否则我不能将 ajax 模态弹出窗口与 JavaScript 一起使用。完成此操作后,一切都按预期工作。我无法解释幕后发生的事情,但这解决了问题。

于 2013-08-15T17:33:13.670 回答
0

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

于 2013-08-11T12:25:36.163 回答