2013-05-15 41 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")); 
}