0

こんにちは、クエリ文字列の値を持つパラメーターを使用して SQLDataSource を作成しようとしていますが、次のようなエラーが発生し続けます。

PropertyName は、ControlParameter 'SubcategoryId' で 'ListOfPosts' という名前のコントロールの有効なプロパティ名に設定する必要があります

propertyName がどうあるべきか理解できないようです。私のコードは次のとおりです。

<asp:SqlDataSource ID="ListOfPosts" runat="server" 
    ConnectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\ASPNETDB.MDF;Integrated Security=True;User Instance=True" 
    ProviderName="System.Data.SqlClient" 
    SelectCommand="SELECT [forum_posts].[PostTitle], [forum_posts].[PostContent], [forum_posts].[PostDate],
    aspnet_Users.Username , forum_subcategories.SubCategoryName
    FROM [forum_posts]
    JOIN aspnet_Users ON [forum_posts].UserId = aspnet_Users.UserId
    JOIN forum_subcategories on forum_posts.SubcategoryId = forum_subcategories.SubCategoryID
    WHERE [forum_posts].SubcategoryId = @SubcategoryId">
    <SelectParameters>
        <asp:ControlParameter Name="SubcategoryId" ControlID="ListOfPosts" Type="String" DefaultValue='<%= Request.QueryString["post"] %>'/>
    </SelectParameters>
</asp:SqlDataSource>
4

1 に答える 1

1

asp:QueryStringParameter代わりに使えるものがあります。これasp:ControlParameterは、ページ内のコントロールで使用することを意図しており、そのようなコントロールが存在しない場合、取得していたエラーが発生します

<SelectParameters>
    <asp:QueryStringParameter Name="SubcategoryId" Type="String" querystringfield="post"/>
</SelectParameters>

その他は、ControlParameter、CookieParameter、FormParameter、ProfileParameter、SessionParameter です。

于 2013-01-02T18:44:22.297 に答える