我的FilterExpression
设置中有SQLDataSource
,因此我可以在文本框中输入查询,相关信息会显示在GridView
中。在这种程度上,我的代码正在运作。
我遇到的问题是在搜索之前不会显示任何信息。换句话说,当首次启动页面时,除搜索功能外,它是空白的。我希望页面首先显示所有内容,然后在搜索后进行过滤。
在我看来,我的代码与我在互联网上找到的代码相同,但是 出于某种神秘的原因,它并没有为我显示。
这是我现在的代码:
<asp:SqlDataSource ID="ABC" runat="server" DataSourceMode="DataSet" EnableCaching="true" ConnectionString="<%$ ConnectionStrings:ABCConnectionString %>"
SelectCommand="SELECT * FROM [myDatabase]"
UpdateCommand="UPDATE [myDatabase] SET [xData] = @xData, [yData] = @yData, [zData] = @zData WHERE [myID] = @myID"
DeleteCommand="DELETE FROM [myDatabase] WHERE [myID] = @myId"
InsertCommand="INSERT INTO [myDatabase] ([xData], [yData], [zData]) VALUES (@xData, @yData, @zData)"
FilterExpression="xData LIKE '{0}%' ">
<FilterParameters>
<asp:ControlParameter Name="xData" ControlID="searchRecord" PropertyName="Text" DefaultValue="%"/>
</FilterParameters>
然后在我的GridView
上方,我有TextBox
和Button
:
<asp:Button ID="searchButton" runat="server" Text="Search" />
<asp:TextBox ID="searchRecord" runat="server" Text="Search by store number"></asp:TextBox>
答案 0 :(得分:0)
我已经通过将过滤器放在按钮onclick
中并分别对验证控件进行分组来解决了这个问题。不知何故,验证控制
交叉射击,这阻止了显示。
我将ControlToValidate="xyz"
添加到对应于一组控件的所有CompareValidators
(在我的例子中,是用于插入新行的控件)。这样做可以将插入控件与我的其他一些控件分开,并且在此之后一切正常。