簡體   English   中英

Gridview標頭下拉列表過濾未觸發SelectedIndexChanged方法

[英]Gridview Header dropdown list filtering not firing SelectedIndexChanged method

我在gridview_rowdatabound事件中動態填充的gridview的每個列標題中都有一個下拉列表。 它被放置用於過濾功能。

我能夠獲得下拉列表和項目列表,但選擇索引已更改的方法未觸發

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    //some condition

    DropDownList ddl = new DropDownList();
    //some ddl properties
    ddl.AutoPostBack = true;
    ddl.SelectedIndexChanged += new EventHandler(ddl_OnSelectedIndexChanged);
}

我還放置了一個新的事件處理程序方法,但未觸發該事件。

private void ddl_OnSelectedIndexChanged(Object sender, EventArgs e)
{
    string test = "reached on select Index changed";
}

關於如何在ddl change事件上獲取此方法的任何建議?

問題是您在RowDataBound事件中分配了SelectedIndexChanged事件。

因為它僅在頁面加載時調用,而不在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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM