Asp.net 将参数传递给Codebehind中的子例程

Asp.net 将参数传递给Codebehind中的子例程,asp.net,asp.net-2.0,Asp.net,Asp.net 2.0,我正在尝试将活动的ID(RefNum)传递给codebehind中的子对象。我知道在向子例程和方法传递参数时应该使用括号,我已经尝试了许多方法,并不断收到以下错误: BC30203:应为标识符 我在前端对它进行硬编码,只是为了让它通过[OnDataBound=“FillSectorBlist”(“WK.002”)测试,但它显然是错的( 前端: <asp:DetailsView ID="dvEditActivity" AutoGenerateRows="False" DataKeyName

我正在尝试将活动的ID(RefNum)传递给codebehind中的子对象。我知道在向子例程和方法传递参数时应该使用括号,我已经尝试了许多方法,并不断收到以下错误:

BC30203:应为标识符

我在前端对它进行硬编码,只是为了让它通过[OnDataBound=“FillSectorBlist”(“WK.002”)测试,但它显然是错的(

前端:

<asp:DetailsView ID="dvEditActivity"  AutoGenerateRows="False" DataKeyNames="RefNum" OnDataBound="dvSectorID_DataBound" OnItemUpdated="dvEditActivity_ItemUpdated" DataSourceID="dsEditActivity" >
   <Fields>
      <asp:TemplateField>  
                <ItemTemplate>
                    <br /><span style="color:#0e85c1;font-weight:bold">Sector</span><br /><br />
                    <asp:CheckBoxList ID="cblistSector" runat="server" DataSourceID="dsGetSectorNames" DataTextField="SectorName" DataValueField="SectorID" OnDataBound="FillSectorCBList("""WK.002""")" ></asp:CheckBoxList>
                    <%-- Datasource to populate cblistSector --%>
                    <asp:SqlDataSource ID="dsGetSectorNames" runat="server" ConnectionString="<%$ ConnectionStrings:dbConn %>" ProviderName="<%$ ConnectionStrings:dbConn.ProviderName %>" SelectCommand="SELECT SectorID, SectorName from Sector ORDER BY SectorID"></asp:SqlDataSource>
                </ItemTemplate>
              </asp:TemplateField>
  </Fields>
</asp:DetailsView>
任何建议都很好。我不确定我是否有正确的方法


谢谢!

您不能将参数传递给OnDataBound事件方法。该方法必须遵循特定的签名。由于该参数本质上是一个程序常量,我只需将其编码到该方法中或从某处读入。当然,您也可以让处理该事件的方法调用不同的方法that接受您的参数。

更改您的参数

OnDataBound=“FillSectorBlist”(“WK.002”)


虽然这将解决标识符预期的错误,但很可能会导致Joel在我提交之前发布另一个错误。

与其他人发布的错误一样,您不能使用OnDataBound事件实现此目的。您需要将DataSource属性设置为所需的方法

DataSource='FillSectorCBList("WK.002")'
请注意,您不能同时设置DataSource和DataSourceID属性。您可能还需要手动执行.DataBind()操作

OnDataBound='FillSectorCBList("WK.002")' 
DataSource='FillSectorCBList("WK.002")'