2012-11-27 96 views
1

我沒有觸發gridview中dropdownlist的選定索引更改事件的問題。我通過了SO Thread。這完全不適合我。我有如下實現。GridView中的Dropdownlist不會觸發selectedindex更改事件

.ASPX

<asp:DropDownList ID="DDL1" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DDL1_SelectedIndexChanged"> 
    <asp:ListItem Text="Review" Value="Review" Selected="True">Review</asp:ListItem> 
    <asp:ListItem Text="Level1" Value="lvl1">Send Back to Level1</asp:ListItem> 
</asp:DropDownList> 

.CS

protected void Page_Load(object sender, EventArgs e) 
    { 
    if(!Page.IsPostBack) 
    { 
    // Bind the GridView to something. 
     DataBindGrid(); 
    } 
else { 
    // Bind the GridView again to maintain previous entered data in the gridview 
     DataBindGrid(); 
    } 
    } 

    protected void DDL1_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     this.lblCity.Text = ((DropDownList)sender).SelectedValue; 
    } 

protected void grdPoll_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if(Page.IsPostBack) 
    { 
    if(e.Row.RowType == DataControlRowType.DataRow) 
    { 
     DropDownList ddl = e.Row.FindControl("DDL1") as DropDownList; 
     if(ddl != null) 
     { 
     ddl.SelectedIndexChanged += new EventHandler(DDL1_SelectedIndexChanged); 
     } 
    } 
    } 
} 

當我保持if(!Page.IsPostBack)塊才把它工作正常。但我也想else塊。實施過程出了什麼問題。您可以請建議解決方案

回答

1

問題是!!..IsPostBack塊,這不是事件其他部分,如你所說的。您在回帖時再次綁定網格,導致該活動被解僱。您不必再次綁定它以在網格中進行更改。

刪除這段代碼。

{ 
    // Bind the GridView again to maintain previous entered data in the gridview 
    DataBindGrid(); 
} 
+0

我想再次綁定它回傳我在哪裏分配不同的更新的數據源的GridView –

+0

然後替換事件名稱「的Page_Load」應該綁定它在某些情況下,而不是Page_load可能在DDL1_SelectedIndexChanged – Adil

0

試試這個:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if(!Page.IsPostBack) 
    { 
    // Bind the GridView to something. 
     DataBindGrid(); 
    } 
else { 
    // Bind the GridView again to maintain previous entered data in the gridview 
     //DataBindGrid(); //remove DataBindGrid(); from else 
    } 
} 

protected void DDL1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    this.lblCity.Text = ((DropDownList)sender).SelectedValue; 
    DataBindGrid(); 
} 
+0

網格應該要在回發時綁定.. –

+0

remove DataBindGrid();從DDL1_SelectedIndexChanged事件和caode放入if(!Page.IsPostBack) //將GridView綁定到某物。 DataBindGrid(); } else { //再次綁定GridView以保持gridview中的先前輸入的數據 DataBindGrid(); } –

-1

與「Page_PreRender」

相關問題