0

OK - これは単純/基本的であるべきだと思いますが、同様の問題に関する多くの投稿を調べましたが、これを行う方法はまだ明確ではありません.

基本的なセットアップは次のとおりです。テキストの変更を投稿するページに「製品」というテキストボックスがあります。

ページの読み込みでは、次のことを行います。

protected void Page_Load(object sender, EventArgs e)
{
   prods.SelectCommand = "SELECT id, pID, pName FROM prods WHERE (pID LIKE '%" + product.Text + "%')";
   prodsTable.DataBind();
}

上記は、新しい SelectCommand 値を使用してテーブルを更新しません。他のいくつかの投稿から-これはページの読み込みイベントシーケンスに関係していると思いますが、おそらくテーブルバインディングは発生しませんか?

ところで、私もパラメーターを使用してこれを実行しようとしました(以下のコード)-それも機能しません。たぶん、それに対する簡単な修正があります(プログラムで上記を機能するように変更するのと比較して?)

前もって感謝します-どちらの方法でも(プログラムまたはパラメトリックに)動作させたいと思います。

完全なコードは次のとおりです。

<asp:TextBox ID="product" runat="server" AutoPostBack="True"></asp:TextBox>

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
     DataKeyNames="id" DataSourceID="prods" AllowPaging="True" 
     AllowSorting="True" AutoGenerateEditButton="True">
     <Columns>
          <asp:BoundField DataField="pID" HeaderText="Product ID" ReadOnly="True" 
               SortExpression="pID" />
          <asp:BoundField DataField="pName" HeaderText="Product Name" 
                SortExpression="pName" />
     </Columns>
</asp:GridView>

<asp:SqlDataSource ProviderName="MySql.Data.MySqlClient" ID="prods" runat="server" 
     CancelSelectOnNullParameter="false" ConnectionString="<%$ mystring %>" 
     SelectCommand="SELECT id, pID, pName FROM prods WHERE (pID LIKE '%@productFilter%')">
     <SelectParameters>
          <asp:ControlParameter ControlID="product" DefaultValue="" 
               Name="productFilter" PropertyName="Text" Type="String" />
     </SelectParameters>
</asp:SqlDataSource>
4

1 に答える 1

0

これを試して:SelectCommand="SELECT id, pID, pName FROM prods WHERE pID LIKE '%' + @productFilter + '%'"

于 2013-01-22T21:42:30.400 に答える