【问题标题】:Display gridview row count based on dropdown selection根据下拉选择显示gridview行数
【发布时间】:2014-04-04 10:37:31
【问题描述】:

我正在使用此代码获取 gridview 计数并在页面加载时显示在标签中,并且工作正常。

页面加载:

int rowCount = dtDetails.Rows.Count;
lblTotalRows.Text = rowCount.ToString() + "records found"; 

我的网格视图上方有一个下拉菜单,当我选择下拉值时,行数必须根据下拉选择的值进行更改。

我怎么可能在下拉选择的索引更改中做到这一点

protected void ddlGroup_SelectedIndexChanged(object sender, EventArgs e)
{
    DataTable dtGroup = DataRepository.GetGroup(ddlGroup.Text);
    gvDetails.DataSource = dtGroup;
    gvDetails.DataBind();
   //Now how could I possible show the respective row counts in the label
}

protected void ddlGroup_SelectedIndexChanged(object sender, EventArgs e)
{
    DataTable dtDept = DataRepository.GetDept(ddlGroup.Text, ddlDept.Text);
    gvDetails.DataSource = dtDept;
    gvDetails.DataBind();
   //Now how could I possible show the respective row counts of both group and 
     dept row count  since they are cascading dropdowns in the label
}

有什么建议吗?

【问题讨论】:

    标签: c# asp.net .net gridview


    【解决方案1】:

    我倾向于创建一个 SetData() 方法,因此所有此类代码都在一个地方。所以在这种情况下,我会:

    protected void SetData(DataTable dtGroup)
    {
        // Bind the data to the grid
        gvDetails.DataSource = dtGroup;
        gvODetails.DataBind();
    
        // Show row count
        if (!dtGroup.Rows.Count.Equals(0))
            lblTotalRows.Text = dtGroup.Rows.Count + " records found";
        else
            lblTotalRows.Text = "No records found";
     }
    

    这样你只有一个地方可以完成所有的“绑定”,所以在你的 Page_Load 中你可以调用这个 SetData() 方法并传入数据表,在你的 SelectedIndexChanged 上也是如此。

    【讨论】:

    • 我的页面中有近 6 个下拉列表,共 2 组,它们是级联下拉列表。这是否适合这种情况,因为我看到您为参数中的一个下拉列表传递了一个数据表。
    猜你喜欢
    • 1970-01-01
    • 2019-12-05
    • 1970-01-01
    • 1970-01-01
    • 2015-03-08
    • 1970-01-01
    • 2017-05-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多