在ASP.net c#中从主表单调用用户控件公共函数的问题

本文关键字:控件 用户 函数 问题 调用 表单 net ASP | 更新日期: 2023-09-27 17:55:04

我在ASP.net c#中创建了一个带有下拉列表的用户控件(下面称为LookupGrid)。现在在主表单中,我想设置的数据源的组合框,但我得到NullExceptions时,设置的数据源的组合框

主web表单中的代码:

LookupGrid droplist = new LookupGrid();
droplist.ID = field.Name;
RecordSet lookupvalues = inRecs.ServiceClient.WebServiceClient.GetInstance().GetLookup("CurrentNRS_Admit", Convert.ToInt64(Session["UserID"].ToString()), field);
droplist.SetData(lookupvalues.ToDataSet());

在用户控件:

protected void Page_Load(object sender, EventArgs e)
{
}
public void SetData(DataSet dTLookupValues)
{
    DropDownList1.DataSource = dTLookupValues.Tables[0];
}

我得到错误:

Object reference not set to an instance of an object.

这一行:

DropDownList1.DataSource = dTLookupValues.Tables[0];

在ASP.net c#中从主表单调用用户控件公共函数的问题

创建属性并从公共方法设置数据表。在页面加载中,您可以绑定数据

public DataTable MyData { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
    DropDownList1.DataSource =MyData  ;
    DropDownList1.DataBind();
}
public void SetData(DataSet dTLookupValues)
{
    MyData  = dTLookupValues.Tables[0];
}

在主页

   protected void Page_Load(object sender, EventArgs e)
    {
        var control = (LookupGrid )LoadControl("~/LookupGrid.ascx");
        control.SetData(lookupvalues.ToDataSet());
        Panel1.Controls.Add(control); //add control to your page or panel
    }