好的 - 我认为这应该是简单/基本的,但我浏览了许多类似问题的帖子,但目前尚不清楚如何做到这一点。
基本设置如下 - 我在页面上有一个名为“product”的TextBox,用于回发文本更改。
在页面加载中,我执行以下操作:
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>
答案 0 :(得分:0)
试试这个:SelectCommand="SELECT id, pID, pName FROM prods WHERE pID LIKE '%' + @productFilter + '%'"