<%@ Page Language="C#" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.SqlClient" %>
<script runat="server">
DataSet ds; void Page_Load(Object sender, EventArgs e)
{ if (!IsPostBack)
{ SqlConnection cnn = new SqlConnection("server=(local);database=pubs; uid=sa; pwd=;");
SqlDataAdapter da = new SqlDataAdapter("select * from authors",cnn); ds = new DataSet();
da.Fill(ds,"authors"); DataGrid1.DataSource = ds.Tables["authors"].DefaultView;
DataGrid1.DataBind();
} } void DropDownList1_SelectedIndexChanged(Object sender, EventArgs e)
{
DropDownList ddl = (DropDownList)sender;
Response.Write(ddl.SelectedItem.Text);
} void Item_Bound(Object sender, DataGridItemEventArgs e)
{
if((e.Item.ItemType == ListItemType.Item) ||
(e.Item.ItemType == ListItemType.AlternatingItem))
{
DropDownList ddl = (DropDownList)e.Item.FindControl("DropDownList1");
ddl.DataSource = ds.Tables["authors"].DefaultView;
ddl.DataTextField = "au_lname";
ddl.DataValueField = "au_id";
ddl.DataBind();
ddl.Items.FindByValue(DataBinder.Eval(e.Item.DataItem,"au_id").ToString()).Selected = true;
} }</script>
<html>
<head>
</head>
<body>
<form runat="server">
<asp:DataGrid id="DataGrid1" runat="server" OnItemDataBound="Item_Bound">
<Columns>
<asp:TemplateColumn HeaderText="DropDownList">
<ItemTemplate>
<asp:DropDownList id="DropDownList1"
OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"
AutoPostBack="True"
runat="server" D/>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
</form>
</body>
</html>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.SqlClient" %>
<script runat="server">
DataSet ds; void Page_Load(Object sender, EventArgs e)
{ if (!IsPostBack)
{ SqlConnection cnn = new SqlConnection("server=(local);database=pubs; uid=sa; pwd=;");
SqlDataAdapter da = new SqlDataAdapter("select * from authors",cnn); ds = new DataSet();
da.Fill(ds,"authors"); DataGrid1.DataSource = ds.Tables["authors"].DefaultView;
DataGrid1.DataBind();
} } void DropDownList1_SelectedIndexChanged(Object sender, EventArgs e)
{
DropDownList ddl = (DropDownList)sender;
Response.Write(ddl.SelectedItem.Text);
} void Item_Bound(Object sender, DataGridItemEventArgs e)
{
if((e.Item.ItemType == ListItemType.Item) ||
(e.Item.ItemType == ListItemType.AlternatingItem))
{
DropDownList ddl = (DropDownList)e.Item.FindControl("DropDownList1");
ddl.DataSource = ds.Tables["authors"].DefaultView;
ddl.DataTextField = "au_lname";
ddl.DataValueField = "au_id";
ddl.DataBind();
ddl.Items.FindByValue(DataBinder.Eval(e.Item.DataItem,"au_id").ToString()).Selected = true;
} }</script>
<html>
<head>
</head>
<body>
<form runat="server">
<asp:DataGrid id="DataGrid1" runat="server" OnItemDataBound="Item_Bound">
<Columns>
<asp:TemplateColumn HeaderText="DropDownList">
<ItemTemplate>
<asp:DropDownList id="DropDownList1"
OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"
AutoPostBack="True"
runat="server" D/>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
</form>
</body>
</html>
if((e.Item.ItemType == ListItemType.Item) ||
(e.Item.ItemType == ListItemType.AlternatingItem))
{
DropDownList dlst=(DropDownList)e.Item.FindControl("drop");
dlst.SelectedIndexChanged+=new EventHandler(this.dlst_SelectedIndexChanged);
}然后自己定义这个事件吧
private void dlst_SelctedIndexChanged(object sender,System.Envent.Args e)
{
DataGridItem item=(DataGridItem)((DropDownList)sender).Parent.Parent;
......
}