【问题标题】:Sortings rows using columns of GridView object returns no results使用 GridView 对象的列对行进行排序不返回结果
【发布时间】:2015-01-26 07:19:52
【问题描述】:

我已经改变了SqlDataSource对象的选择查询,并像这样将它绑定到GridView

        protected void Button1_Click(object sender, EventArgs e)
    {
        if (ddlBloodGroup.SelectedValue != "Any")
        {
            bg = " And BloodGroup='" + ddlBloodGroup.SelectedValue + "'";
        }
        if (ddlRh.SelectedValue != "Any")
        {

            rh = " And Rh='" + ddlRh.SelectedValue + "'";
        }

        q = "select * from Donor Where 1=1 "+bg+rh;

        SqlDataSource1.SelectCommand = q;
        SqlDataSource1.DataBind();
        GridView1.DataBind();

    }

我清楚地得到了结果

但是当我单击列标题按该列排序时,数据消失了

【问题讨论】:

  • 你处理过网格上的事件排序吗?

标签: c# asp.net gridview


【解决方案1】:

你必须处理排序事件

protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
    if (ddlBloodGroup.SelectedValue != "Any")
    {
        bg = " And BloodGroup='" + ddlBloodGroup.SelectedValue + "'";
    }
    if (ddlRh.SelectedValue != "Any")
    {

        rh = " And Rh='" + ddlRh.SelectedValue + "'";
    }

    q = "select * from Donor Where 1=1 "+bg+rh;

    SqlDataSource1.SelectCommand = q;
    SqlDataSource1.DataBind();
    GridView1.DataBind();
}

当然你需要允许排序

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
DataKeyNames="id" DataSourceID="SqlDataSource1" AllowSorting="True" 
    onsorting="GridView1_Sorting">

【讨论】:

    猜你喜欢
    • 2018-09-15
    • 2021-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-22
    • 1970-01-01
    相关资源
    最近更新 更多