将参数传递给LinqDataSource“OnSelecting”用于存储过程

问题描述:

我正在构建一个半精细的RadGrid,在我的NestedViewTemplate中我想要一个使用存储过程从数据库获取数据的LinqDataSource。将参数传递给LinqDataSource“OnSelecting”用于存储过程

这里是我到目前为止

  <asp:HiddenField runat="server" ID="HiddenID" Value='<%#DataBinder.Eval(Container.DataItem, "ID")%>' /> 
      <asp:LinqDataSource ID="LinqDataSource1" runat="server" OnSelecting="LinqDataSource_Selecting"> 
       <WhereParameters> 
       <asp:ControlParameter ControlID="HiddenID" PropertyName="ID" Type="String" Name="ID" /> 
       </WhereParameters> 
      </asp:LinqDataSource> 

我的任何代码隐藏...

Protected Sub LinqDataSource_Selecting(ByVal sender As Object, ByVal e As LinqDataSourceSelectEventArgs) 


    Dim hdc As New DAL.HealthMonitorDataContext() 
    e.Result = hdc.bt_HealthMonitor_GetByID(Integer.Parse(e.WhereParameters("ID"))) 
End Sub 

可惜hdc.bt_HealthMonitor_GetByID(Integer.Parse(e.WhereParameters("ID")))不打好...

异常详细信息: System.FormatException:输入字符串为不是以正确的格式。

+0

忘记它,我在WhereParameters中的“PropertyName”不正确。 ''基本上我是一个延迟...对不起。 – 2010-03-14 02:41:59

WhereParameters中的“PropertyName”不正确。

<asp:ControlParameter ControlID="HiddenID" 
         PropertyName="Value" 
         Type="String" 
         Name="ID" />