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>