2013-05-15 85 views
2

我想在DDL OnSelectedIndexChanged事件後在griview上找到控件。目標控件位於DDL所在的rowindex上。下拉列表事件後的Gridview findcontrol

這裏是我的代碼;

protected void Page_Load(object sender, EventArgs e) 
{ 
    ArrayList Dummysource = new ArrayList() { "AA", "BB", "CC", "DD" }; 

    if(!IsPostBack) 
    { 
     GridView1.DataSource = Dummysource; 
     GridView1.DataBind(); 
    } 

} 

protected void ddlsample_OnSelectedIndexChanged(object sender, EventArgs e) 
{ 
    string valueComponent = (sender as DropDownList).SelectedItem.Value; 


    Label1.Text = valueComponent; 

} 


int ddlvalue; 
protected void GridView1_OnRowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    //Checking whether the Row is Data Row 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     //Finding the Dropdown control. 
     DropDownList ddlsample = (DropDownList)e.Row.FindControl("ddlsample"); 
     Label ilbldata = (Label)e.Row.FindControl("lbldata"); 

     if (ddlsample != null) 
     { 
      switch(ilbldata.Text) 
      { 

       case "AA": 
        ddlvalue = 2; 
        break; 
       case "BB": 
        ddlvalue = 3; 
        break; 
       case "CC": 
        ddlvalue = 4; 
        break; 
       case "DD": 
        ddlvalue = 5; 
        break; 

      } 
      for (int i = 1; i <= ddlvalue; i++) 
      { 
       ddlsample.Items.Add(i.ToString()); 
      } 
     } 
    } 

} 

protected void GridView1_SelectedIndexChanged(Object sender, EventArgs e) 

{ 
    GridView gv = sender as GridView; 
    gv = GridView1; 
    Label foo = gv.SelectedRow.FindControl("lbldata") as Label ; 
    Label2.Text = foo.Text; 
} 

該代碼獲取DropDownList選定項的值。我想知道如何獲取gridview中的組件值。的DDL

selectedindexchange事件後,我做了提前更清晰 http://i1288.photobucket.com/albums/b493/Kasparov1/GridviewDDL_zps3721fb97.png

感謝一些視覺上的照片;

回答

3

試試這個

protected void ddlsample_OnSelectedIndexChanged(object sender, EventArgs e) 
{ 
    DropDownList ddl = (DropDownList)sender; 

    Label1.Text = ddl.SelectedItem.Value; 

    GridViewRow row = (GridViewRow)ddl.NamingContainer; 

    // Find your control 
    Control control = row.FindControl("myControl"); 
} 
+0

感謝的方式響應爵士。 DDL在gridview裏面.. –

+0

我已經更新了我的代碼。嘗試這個,讓我知道結果 – Sachin

+0

得到它,先生謝謝保護無效ddlsample_OnSelectedIndexChanged(對象發件人,EventArgs e) { string valueComponent =(sender as DropDownList).SelectedItem.Value; Label1.Text = valueComponent; DropDownList ddl =(發件人爲DropDownList); GridViewRow row =(GridViewRow)ddl.NamingContainer; //查找控件 Label control = row.FindControl(「lbldata」)as Label; Label2.Text = control.Text; } –

0
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
    DropDownList drop = GridView1.Controls[0].Controls[0].FindControl("DropDownList1") as DropDownList; 
    string text = drop.Items[drop.SelectedIndex].ToString(); 
    //Find FooterRow Control 
    DropDownList dT = GridView1.FooterRow.FindControl("DropDownList1") as DropDownList; 
    string text = dT.Items[dT.SelectedIndex].ToString(); 
} 

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)//DropDownList1 in GridVied 
{ 
    //Find FooterRow Control 
    DropDownList drop = GridView1.FooterRow.FindControl("DropDownList1") as DropDownList; 
    string text = drop.Items[drop.SelectedIndex].ToString(); 
    //find normal DropDownList1 
    DropDownList drop1 = GridView1.FindControl("DropDownList1") as DropDownList; 
    string text = drop1.Items[drop1.SelectedIndex].ToString(); 
} 

//ADD list in GRIDVIEW dropdownlist at run time 

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    DropDownList ddl = (DropDownList)e.Row.FindControl("DropDownList1");//Gridview DropDownList 
    ddl.Items.Add("- - Select - -"); 
    ddl.Items.Add(new ListItem("ABCD")); 
    ddl.Items.Add(new ListItem("EFGH")); 
}