我有一个相当简单的 asp 网格视图,绑定到对象数据源。我想要的是按钮单击时的此gridview 更新,其结果是动态的,具体取决于文本框中的值(它是搜索屏幕的基础)。
到目前为止,一切都是这样工作的:
ASPX 文件:
<h3>Search Parameters</h3>
<div>
Account Name
<asp:TextBox runat="server" ID="AccountName"></asp:TextBox>
</div>
<asp:Button ID="Search" runat="server" Text="Search" OnClick="Search_Click" />
<asp:GridView runat="server" ID="SearchGrid" DataSourceID="ObjectDataSource1" AutoGenerateColumns="False" Width="100%" AllowPaging="True" CellPadding="4" ForeColor="#333333" GridLines="None" >
<Columns>
<asp:BoundField DataField="PartyID" HeaderText="Party ID" SortExpression="PartyID" />
<asp:BoundField DataField="PartyName" HeaderText="Party Name" SortExpression="PartyName" />
<asp:BoundField DataField="CompleteAddress" HeaderText="Address" SortExpression="CompleteAddress" />
</Columns>
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
</asp:GridView>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="GetData" TypeName="DIS.Data.DataSetAccountsTableAdapters.GetAccountsBySearchParametersTableAdapter">
<SelectParameters>
<asp:Parameter Name="PartyName" Type="String" />
</SelectParameters>
</asp:ObjectDataSource>
ASPX.CS 文件:
protected void Search_Click(object sender, EventArgs e)
{
ObjectDataSource1.SelectParameters["PartyName"].DefaultValue = AccountName.Text;
}
从表面上看,一切正常。用户在帐户名称框中输入文本,点击搜索,网格视图将更新为适当的值。
当我们获得足够的行来生成分页时,就会出现问题。页面链接显示在 GridView 上,但单击它们根本没有效果 - 值将在第 1 页上保持一致。
我相信这可能与单击页面链接时的回发有关,但不幸的是,我在这方面的知识还不够强大,无法真正诊断到底发生了什么。
任何帮助将不胜感激最好的问候