【发布时间】:2013-01-18 19:44:53
【问题描述】:
好的 - 我认为这应该很简单/基本,但我浏览了许多有类似问题的帖子,但仍然不清楚如何做到这一点。
基本设置如下 - 我在页面上有一个名为“产品”的文本框,它会在文本更改时回发。
在页面加载中,我执行以下操作:
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>
【问题讨论】:
-
你的第一行代码应该是“prodsTable.SelectCommand”吗?如果不是,什么是产品?
-
嗨 Malanie - prods 是绑定到 prodsTable 的 SqlDataSource,它是 GridView 表。
-
请发布您的所有代码。
-
添加了完整的代码——请帮忙;我需要让这个工作。谢谢。
标签: .net mysql gridview sqldatasource mysql-connector