Gridview标题下拉列表过滤未触发SelectedIndexChanged方法

时间:2017-04-20 15:14:02

标签: c# asp.net gridview

我在gridview_rowdatabound事件中动态填充的gridview的每个列标题中的下拉列表。它用于过滤功能。

我能够获得下拉列表和项目列表,但是选择索引已更改的方法未被解雇

type

我还放置了一个新的事件处理程序方法,但是这个事件没有被触发。

typeof(TypeInfo)

关于如何在ddl更改事件上获得此方法的任何建议?

1 个答案:

答案 0 :(得分:0)

问题是您在SelectedIndexChanged事件中分配了RowDataBound事件。

因为它只在页面加载时调用,而不是在PostBack上调用(如果你将数据绑定包装在if (!IsPostBack) { }里面),PostBack上的绑定就会丢失,并且不会执行该方法。

因此,您必须确保在每个页面加载时添加处理程序。

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        GridView1.DataSource = mySource;
        GridView1.DataBind();
    }

    DropDownList ddl = GridView1.HeaderRow.FindControl("DropDownList1") as DropDownList;
    ddl.AutoPostBack = true;
    ddl.SelectedIndexChanged += new EventHandler(ddl_OnSelectedIndexChanged);
}