这是我用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
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 超出范围!请问该如何是好??
{
DropDownList DropList1=(DropDownList)DataGrid1.Items[i].FindControl("DropDownList1");
string str = DropList1.Items[DropClass.SelectedIndex].Value;
Response.Write(str);
}
直接用DropDownList1.SelectedItem.Text就行了
string str = DropList1.Items[DropList1.SelectedIndex].Value;
请确认你的数据是帮定到那个里面的;
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