次のようなグリッドビューがあります。
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" PageSize="10"
DataKeyNames="id"
OnRowEditing="GridView1_RowEditing"
OnRowCancelingEdit="GridView1_RowCancelingEdit"
OnRowUpdating="GridView1_RowUpdating"
OnPageIndexChanging="GridView1_PageIndexChanging"
OnPageIndexChanged="GridView1_PageIndexChanged"
AllowPaging="True">
正常に動作します。データベース結果のフィルターとして機能する、グリッドビューの上にドロップダウン ボックスを追加したいと考えています。
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true">
<asp:ListItem Value="0">Show all</asp:ListItem>
<asp:ListItem Value="1">In queue</asp:ListItem>
<asp:ListItem Value="2">Being worked on</asp:ListItem>
<asp:ListItem Value="3">Complete</asp:ListItem>
<asp:ListItem Value="4">Declined</asp:ListItem>
</asp:DropDownList>
ドロップダウンをグリッドビューと対話させて結果を更新するにはどうすればよいですか? グリッドビューではページングが有効になっているため、ページがクリックされたときにドロップダウン オプションを記憶する必要があり、ページ番号とドロップダウンの選択に基づいてデータベースの結果も記憶する必要があることに注意してください。
アップデート:
BindData が Page_Load に入る場所に、次のようにグリッドビューを設定します。
private void BindData()
{
SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["connString"]);
SqlDataAdapter da = new SqlDataAdapter(@"sql query here", con);
DataTable dt = new DataTable();
da.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();
}
Page_Load は次のようになります。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindData();
}
}