【问题标题】:How to Update GridView by changing SelectCommand string in SqlDataSource如何通过更改 SqlDataSource 中的 SelectCommand 字符串来更新 GridView
【发布时间】: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


【解决方案1】:

试试这个:SelectCommand="SELECT id, pID, pName FROM prods WHERE pID LIKE '%' + @productFilter + '%'"

【讨论】:

  • 嗨 Yuriy - 感谢您的回复。你的意思是在 C# 文件或 .aspx 文件中添加以上内容? - 我问的原因是因为我认为使用 + 连接字符串只能在 C# 文件中使用,而对参数 @productFilter 的引用只能在 .aspx 文件中使用?
  • 我在 .aspx 文件中尝试了以下操作,但没有成功:SelectCommand="SELECT id, pID, pName FROM prods WHERE pID LIKE '%' @productFilter '%'"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-31
  • 1970-01-01
  • 2010-09-22
相关资源
最近更新 更多