用这个方法能得到DroopDownList中改过的值:
for (int i=0; i<DataGrid1.Items.Count; i++)
{
DataGridItem _item = DataGrid1.Items[i];
DropDownList title=(DropDownList)_item.FindControl("DropDownList名称");
得到选择的值
title.SelectedItem.Tostring();
}
for (int i=0; i<DataGrid1.Items.Count; i++)
{
DataGridItem _item = DataGrid1.Items[i];
DropDownList title=(DropDownList)_item.FindControl("DropDownList名称");
得到选择的值
title.SelectedItem.Tostring();
}
<asp:DropDownList Runat=server ID=aa DataSource=<%#DataBinder.Eval(Container.DataItem,"Product_Money"))%>'></asp:DropDownList>
</ItemTemplate>
<asp:TemplateColumn>
<ItemTemplate>
<asp:DropDownList Runat=server ID="aa" DataSource='<%#DataBinder.Eval(Container.DataItem,"Product_Money"))%>'>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateColumn>
“DropDownList1 使用的是无效数据源。有效数据源必须实现 IListSource 或 IEnumerable。”
{
string text=((DropDownList)e.Item.Cells[模版列的列数].Controls[0]).SelectedItem.Text;
.................
}
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
DropDownList myList = (DropDownList)e.Item.FindControl("dropdownlistid"); //获取DropDownList对象
string str = ((DataRowView)e.Item.DataItem)["fieldname"].ToString(); //获取这一行DropDownList对应的那个字段的值
myList.Items.FindByValue(str).Selected; //将这个对应的那个Item设为Selected
}
}用遍历datagrid中的每一行来获取每一行的DropDownList:
foreach(DataGridItem myItem in DataGrid1.Items)
{
DropDownList myList = (DropDownList)myItem.Cells[n].Controls[0]; //n为你的DropDownList所在的列序号
}
是指绑定的时候就根据表中其它字段显示吗?如果那样的话你得在DataGrid的ItemCreated事件中做一些处理,下面是一个例子:根据dgDctors数据表中显示的dr_id字段动态显示医生对应的专长 Private Sub dgDoctors_ItemCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles dgDoctors.ItemCreated
Dim datrowv As DataRowView
datrowv = e.Item.DataItem
If IsNothing(datrowv) Then
Return
Else
'获取医生id号
Dim drid As String
drid = datrowv("dr_id") Dim lit As ListItemType
lit = e.Item.ItemType
If lit = ListItemType.Item Or lit = ListItemType.AlternatingItem Then
Dim speList As New DropDownList()
speList.ID = "drSp"
Dim sqlSp As String
sqlSp = "select * from drspecialties where dr_id='" & drid & "'"
Dim daSp As New SqlClient.SqlDataAdapter(sqlSp, conn)
Dim dsSp As New DataSet()
daSp.Fill(dsSp)
speList.DataSource = dsSp
speList.DataTextField = "specialty_id"
speList.DataBind()
Dim cell As TableCell
e.Item.Cells(0).Controls.Add(speList)
End If
End If
End Sub
在DataGrid的ItemTemplate中放一个DropDownList,DropDownList中应有三个ListItem(如:A、B、C,A、B、C是ListItem的Text值,而ListItem的Value值与数据库中的字段邦定,可能是0、1或2),DropDownList的ListItem项根据数据库中的值与ListItem的Value值相对应而变化显示,当然在ItemTemplate中应可以更改选择ListItem项!
小弟在这谢了!一会儿就给分!