将下拉列表传递给公共功能

时间:2014-01-24 13:15:44

标签: c# asp.net visual-studio-2010

我试图将一个下拉列表传递给一个公共函数,这样无论我在哪个地方为任何下拉列表调用此函数都可以。我有多个页面都有下拉列表,我需要多次调用它。

我已经在我的aspx中声明了这一点:

<asp:DropDownList ID="DropDownListVType" runat="server" 
     DataSourceID="SqlDataSourceVesselType" DataTextField="Vessel_Type" 
     DataValueField="VType_ID" Width="160px" AutoPostBack="True" 
     CausesValidation="True" OnDataBound="ddl_DataBound">
</asp:DropDownList>

和我的cs

PublicFunctions pubvar = new PublicFunctions();

protected void Page_Load(object sender, EventArgs e)
{
    pubvar.ddl_DataBound(DropDownListVType);
}

并在单独的公共函数类中:

public string ddl_DataBound(DropDownList d)
{
  return  d.Items.Insert(0, new ListItem("--- Please Select ---", String.Empty));
}

我收到的错误是:

无法将类型'void'隐式转换为'string'

2 个答案:

答案 0 :(得分:2)

Insert返回void,因此您无法返回。您的函数的返回类型为string,其返回类型应为void

public void ddl_DataBound(DropDownList d)
{
    d.Items.Insert(0, new ListItem("--- Please Select ---", String.Empty));
}

答案 1 :(得分:1)

你的退货声明就是问题。

请将您的功能更改为无效并删除退货。

public void ddl_DataBound(DropDownList d)
{
    d.Items.Insert(0, new ListItem("--- Please Select ---", String.Empty));
}

目前您尝试将Item.Insert()的返回值(这是一个空值)作为字符串返回给调用者。