tryfor(int i=0;i<datagrid1.Items.Count;i++)
{DropDownList DropList1=(DropDownList)datagrid1.Items[i].FindControl("DropDownList1");
string str = DropList1.SelectedItem.Text;  
}

解决方案 »

  1.   

    你就用DropDownList1.SelectedItem.Text不行吗?一定要用FindControl吗?
      

  2.   

    好像没错,改成DropList1 = (DropDownList)datagrid1.items[0].cells[0].controls[0]试试;假设在第一行,第一列
      

  3.   

    谢谢各位!但是我用如下语句还是取得值为空,请问为什么?
    private void Button1_Click(object sender, System.EventArgs e)
    {
       for(int i=0;i<DataGrid1.Items.Count;i++)
    {
             DropDownList DropList1=(DropDownList)DataGrid1.Items[i].FindControl("DropDownList1");
    string str =    DropList1.SelectedItem.Value;  
    Response.Write(str);
    }

    }或者用DropList1 = (DropDownList)datagrid1.items[0].cells[0].controls[0]
    则报错:Index 超出范围!请问该如何是好??
      

  4.   

    for(int i=0;i<DataGrid1.Items.Count;i++)
    {
             DropDownList DropList1=(DropDownList)DataGrid1.Items[i].FindControl("DropDownList1");
    string str = DropList1.Items[DropClass.SelectedIndex].Value;  
    Response.Write(str);
    }
      

  5.   

    请问songzx66的是DropClass是什么?谢谢!
      

  6.   

    如果你已把控件拖到了页面上,就不用new了
    直接用DropDownList1.SelectedItem.Text就行了
      

  7.   

    是打错字了,应该是
    string str = DropList1.Items[DropList1.SelectedIndex].Value;
      

  8.   

    dpl的帮定数据的可以是text和value;
    请确认你的数据是帮定到那个里面的;
      

  9.   

    string selected ValueDropist1 =SelectedItem.Text;
      

  10.   

    这是我用VB写的一段代码,不知对你有没有帮助
    Public Sub GetChangeClass(ByVal sender As Object, ByVal e As System.EventArgs)
            Dim cboChangeClass As DropDownList
            Dim cboChangeItem As DropDownList
            Dim adoRdr As OleDbDataReader
            Dim i As Integer = 0        cboChangeClass = myGrid1.Items.Item(0).FindControl("Edit_CHANGECLASS")
            cboChangeItem = myGrid1.Items.Item(0).FindControl("Edit_CHANGEITEM")
            cboChangeItem.Items.Clear()        strSQL = "select STAPLE from DISNSTAPLE where FIXCLASS = '" _
                    & cboFIXCLASS.SelectedItem.Text & "' and WORKCLASS = '" _
                    & cboChangeClass.SelectedItem.Text & "'"
            adoCon = New OleDbConnection(pStrCon)
            adoCon.Open()
            Dim adoCmd As New OleDbCommand(strSQL, adoCon)
            adoRdr = adoCmd.ExecuteReader()
            While adoRdr.Read()
                cboChangeItem.Items.Add(adoRdr.Item(0))
                i = i + 1
            End While
            adoRdr.Close()
            adoCon.Close()
        End Sub