2011-04-01 83 views
1

我有一个GridView,用户在其中选择一行,然后将其带到一个FormView中,并从所选记录获取更多数据。但是,过滤器表达式不起作用。这是我的FormView的数据源:筛选数据(.NET)

<asp:AccessDataSource ID="adsCourse" runat="server" DataFile="~/App_Data/courseinfo.mdb" 
    FilterExpression="prefix='{0}' AND course_number='{1}'" SelectCommand="SELECT * FROM [tableCourse]"> 
    <FilterParameters> 
     <asp:ControlParameter Name="prefix" ControlID="GridView1" PropertyName="SelectedValue" /> 
     <asp:ControlParameter Name="course_number" ControlID="GridView1" PropertyName="SelectedValue" /> 
    </FilterParameters> 
</asp:AccessDataSource> 

正如你所看到的,我试图从GridView控件中选定行同时获得前缀和课程编号。如果我得到的只是前缀,它的工作原理,但它似乎无法得到其他任何东西。有了这两个参数,我的FormView显示空白。有任何想法吗?

回答

0

我见过的AccessDataSource的示例总是使用?作为占位符,而不是{0}

<asp:AccessDataSource 
      ID="adsCourse" 
      runat="server" 
      DataFile="~/App_Data/courseinfo.mdb" 
      FilterExpression="prefix = ? AND course_number = ?" 
      SelectCommand="SELECT * FROM [tableCourse]"> 
    <FilterParameters> 
     <asp:ControlParameter Name="prefix" ControlID="GridView1" PropertyName="SelectedValue" /> 
     <asp:ControlParameter Name="course_number" ControlID="GridView1" PropertyName="SelectedValue" /> 
    </FilterParameters> 
</asp:AccessDataSource> 
+0

嗯试过了,但它只是抛出一个错误,说“无法解释令牌”?在位置10“。 – Sara 2011-04-01 19:09:23

+0

@Sara,试试'@prefix'和'@ course_number'。这将是SQL服务器的语法。 – 2011-04-02 01:39:21

+0

不幸的是没有工作。 – Sara 2011-04-14 22:09:51