オブジェクトデータソースに関連付けられた、かなり単純なaspグリッドビューがあります。私が欲しいのは、ボタンクリックでのこのグリッドビューの更新であり、テキストボックス内の値に応じて動的な結果が得られます(これが検索画面の基礎になります)。
これまでのところ、すべてがそのように機能します。
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に一貫して残ります。
ページリンクをクリックしたときのポストバックと関係があるのではないかと思いますが、残念ながらこの分野の知識は、実際に何が起こっているのかを診断するほど強力ではありません。
どんな助けでも大歓迎ですよろしくお願いします