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

时间:2010-03-14 02:36:51

标签: linqdatasource

我正在构建一个半精心设计的RadGrid,在我的NestedViewTemplate中我想要一个使用存储过程从数据库中获取数据的LinqDataSource。

这是我到目前为止所拥有的

            <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:输入字符串的格式不正确。

1 个答案:

答案 0 :(得分:2)

WhereParameters中的“PropertyName”不正确。

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