c# - 选择下拉列表时无法阻止 gridview 刷新

标签 c# asp.net sorting gridview drop-down-menu

我有一个在 page_load 下填充了数据的 gridview。该 GridView 可按字母排序并具有分页功能。但是,选择下拉列表值后,我的gridview的排序信息重置为默认的page_load数据。

我添加了更新面板和触发器,但它仍然不起作用。我搜索了所有的 SO 线程,并且都建议触发器和更新面板。我还在下拉列表中启用自动发回。 ddl的ID也是正确的。

<asp:UpdatePanel ID="UpdatePanel1" runat="server" >
<ContentTemplate>

      **GridView**      

    *dropdownlist category*
    *search textbox*
    *search button*


</ContentTemplate>
<Triggers> 
<asp:AsyncPostBackTrigger ControlID="ddlCategory" EventName="SelectedIndexChanged" /> 
</Triggers> 
</asp:UpdatePanel>

</asp:Content>

如何准确防止 ddl 值的选择使已排序的 ddl 值重置为 page_load 中找到的默认数据。

这就是我在 page_load 中绑定(bind) gridview 的方式

Session["gridview"] = DataBindByDataSet();

GVPolice.DataSource = Session["gridview"];
GVPolice.DataBind();

这是数据表方法

private DataTable DataBindByDataSet()
    {

        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);

                conn.Open();

                DataSet ds = new DataSet();

                SqlDataAdapter da = new SqlDataAdapter(*sql command*);
                da.Fill(ds);

                conn.Close();

                 return ds.Tables[0];               

   }

最佳答案

将绑定(bind)代码放在Page_Load()方法的下面if条件中,这样有回发时就不会绑定(bind)。

//not post back i.e. first time load
if (!IsPostBack)
{
    Session["gridview"] = DataBindByDataSet();

    GVPolice.DataSource = Session["gridview"];
    GVPolice.DataBind();
}

关于c# - 选择下拉列表时无法阻止 gridview 刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19676627/

相关文章:

c# - 从 List<DateTime> 获取月份列表

python - 平衡两个列表,直到它们的总和相等,并且在 Python 中的两个列表中交换最小

c# - 无法将类型 'System.DateTimeOffset?' 隐式转换为 'System.DateTimeOffset' 。显式转换退出(是否缺少强制转换)

c# - 尝试从 Chrome 实现拖放 Gmail 附件

javascript - ASP + Jquery 聚焦 Gridview 中的下一个文本框

c# - 如何为新的 Microsoft.Asp.NET Identity (MVC5) 设置自定义架构

c# - 比较两个集合列表

c# - 使用枚举数组反序列化 json

sorting - Elasticsearch 排序查询

python - 如何按这两个值对元组列表进行排序?