【问题标题】:Getting data from GridView after changing the DataSource更改 DataSource 后从 GridView 获取数据
【发布时间】:2014-11-15 22:30:07
【问题描述】:

我正在尝试将 gridview 的列名添加到下拉列表中。 问题是当我更改gridview的数据源时,它返回空。

我不确定该事件是否正常工作,因为它在有/没有它的情况下都不起作用。 我想使用 DataBindComplete 事件,但我看不到它,所以我尝试了 DataBound。

 private void BindTable()
    {
        if (ddTableSearch.SelectedIndex == 0)
        {
            tblCustomerTableAdapter customerAdapter = new tblCustomerTableAdapter(); 
            GridView2.DataSource = customerAdapter.GetData();
            GridView2.DataBind();
        }
        else if (ddTableSearch.SelectedIndex == 1)
        {
            tblInvoiceTableAdapter invoiceAdapter = new tblInvoiceTableAdapter();
            GridView2.DataSource = invoiceAdapter.GetData();
            GridView2.DataBind();
        }
        else if (ddTableSearch.SelectedIndex == 2)
        {
            tblEstimateTableAdapter estimateAdapter = new tblEstimateTableAdapter();
            GridView2.DataSource = estimateAdapter.GetData();
            GridView2.DataBind();
        }
    }

    protected void GridView2_DataBound(object sender, EventArgs e)
    {
        // Populate dropdown with column names
        ddColumnSearch.Items.Clear();
        for (int i = 0; i < GridView2.Columns.Count; i++)
        {
            ddColumnSearch.Items.Add(new ListItem(GridView2.Columns[i].ToString()));
        }
    }

我做错了什么?

【问题讨论】:

    标签: c# asp.net sql-server gridview webforms


    【解决方案1】:

    数据绑定事件针对网格视图中的每条记录运行。因此,一个问题是每次您清除之前添加的项目时。另一个问题是您需要从 EventArgs 而不是从 gridview.columns 获取数据,因为在绑定所有数据之前这些数据不存在。我认为您需要做的就是从标题行获取数据:

    protected void GridView2_DataBound(object sender, EventArgs e)
    {
        // Populate dropdown with column names
        if(e.Row.RowType != DataControlRowType.Header) return; //only continue if this is hdr row
        ddColumnSearch.Items.Clear();
        foreach (TableCell cell in e.Row.Cells)
        {
            ddColumnSearch.Items.Add(new ListItem(cell.Text));
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多