我在ASP.net C#中创建了一个用户控件,其中包含一个Dropdownlist(下面称为LookupGrid)。现在在主窗体中,我想设置Combobox的数据源,但是在设置组合框的数据源的行上我得到NullExceptions
主要网络表单中的代码:
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];
答案 0 :(得分:1)
创建属性并从公共方法设置数据表。在页面加载中,您可以绑定数据
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
}