我试图将一个下拉列表传递给一个公共函数,这样无论我在哪个地方为任何下拉列表调用此函数都可以。我有多个页面都有下拉列表,我需要多次调用它。
我已经在我的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'
答案 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()
的返回值(这是一个空值)作为字符串返回给调用者。