【问题标题】:Calling a method from a user control which is implemented in a different location从在不同位置实现的用户控件调用方法
【发布时间】:2017-02-11 12:25:17
【问题描述】:

我创建了一个用户控件 FormPicker.ascx。我使用下面的代码段将它包含到了 AdmissionPicker.aspx 页面中。

<%@ Register Src="~/Common/Controls/FormPicker.ascx" TagName="FormPicker"
TagPrefix="uc1" %>

<div>
<uc1:FormPicker ID="FormPicker" Width="100%"
runat="server" AddAny="True" />
</div>

在 FormPicker.ascx.cs 中,我正在调用以下函数。 LoadAdmissionData() 在 AdmissionPicker.aspx.cs 中实现

var admitCtrl = new AdmissionPicker();
admitCtrl.LoadAdmissionData();

LoadAdmissionData() 方法包含一个下拉列表。下拉列表在 AdmissionPicker.aspx 中实现。

public void LoadAdmissionData()
{
  int val=DropDownList.SelectedIndex();
}

我在同一页面中使用 LoadAdmissionData() 方法,现在我需要从 FormPicker.ascx.cs 中调用它。调用它时,它不会识别 DropDownList。如何解决此问题。

【问题讨论】:

    标签: c# asp.net oop user-controls


    【解决方案1】:

    你好,你能改变这行吗

    var admitCtrl = new AdmissionPicker();
    

    var admitCtrl = (AdmissionPicker) Page;
    

    【讨论】:

    • @izadi 实际上我正在使用 var admissionCtrl = new operations.app.com.web.Sec1.Controls.AdmissionPicker();创建对象时。(我使用完整的命名空间是为了故意调用它)你能指导我如何将其更改为 var admissionCtrl = (AdmissionPicker) Page;
    • @izadi |我像这样编辑了代码。这是你的意思吗?但它说语法错误|如果我错了,请纠正我。 var admissionCtrl = new (app.hospicecom.com.web.Sec1.Controls.AdmissionPicker) 页面;
    • 请复制粘贴此行var admitCtrl = (app.hospicecom.com.web.Sec1.Controls.AdmissionPicker) Page;
    • @harsha 你已经从你的页面创建了新对象,它错误你应该得到你的用户控件已经加载的当前页面
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多