add a handler for OnSelectedIndexChanged, for example
<%@ Page language="C#" UiCulture="zh-CN" Culture="zh-CN"%>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<html><head>
<script runat="server">
void Page_Load(Object sender, EventArgs e)
{
if(!IsPostBack)
{
SqlDataAdapter da = new SqlDataAdapter("select * from authors",
"Server=localhost;Database=pubs;UID=sa;PWD=;");
DataSet ds = new DataSet();
da.Fill(ds, "authors"); MyDataGrid.DataSource = ds.Tables["authors"].DefaultView;
MyDataGrid.DataBind();
}
} void DDLChange(Object sender, EventArgs e)
{
DropDownList ddl = (DropDownList)sender;
Response.Write(String.Format("{0}:{1}<BR>", ddl.ID,ddl.SelectedItem.Value));
} public void MyDataGrid_ItemDataBound(Object sender, DataGridItemEventArgs e)
{
ListItemType itemType = e.Item.ItemType;
if (itemType == ListItemType.Header)
{
DropDownList ddl = (DropDownList)e.Item.FindControl("DDLTop");
ddl.DataSource = MyDataGrid.DataSource;
ddl.DataTextField = "au_lname";
ddl.DataValueField = "au_id";
ddl.DataBind();
}
}
</script>
<form runat="server">
<asp:DataGrid id="MyDataGrid" runat="server" AutoGenerateColumns="false" OnItemDataBound="MyDataGrid_ItemDataBound">
<Columns>
<asp:BoundColumn HeaderText="Last Name"
ReadOnly="true"
DataField="au_lname"/>
<asp:TemplateColumn>
<HeaderTemplate>
<asp:DropDownList id="DDLTop" runat="server" AutoPostBack="True" Width="100%" OnSelectedIndexChanged="DDLChange">
</asp:DropDownList>
</HeaderTemplate> <ItemTemplate>
<asp:CheckBox id="chkMyDataGrid" runat="server" Text="Test"/>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
<asp:Button id="btn" runat="Server" text="submit" />
</form>
<%@ Page language="C#" UiCulture="zh-CN" Culture="zh-CN"%>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<html><head>
<script runat="server">
void Page_Load(Object sender, EventArgs e)
{
if(!IsPostBack)
{
SqlDataAdapter da = new SqlDataAdapter("select * from authors",
"Server=localhost;Database=pubs;UID=sa;PWD=;");
DataSet ds = new DataSet();
da.Fill(ds, "authors"); MyDataGrid.DataSource = ds.Tables["authors"].DefaultView;
MyDataGrid.DataBind();
}
} void DDLChange(Object sender, EventArgs e)
{
DropDownList ddl = (DropDownList)sender;
Response.Write(String.Format("{0}:{1}<BR>", ddl.ID,ddl.SelectedItem.Value));
} public void MyDataGrid_ItemDataBound(Object sender, DataGridItemEventArgs e)
{
ListItemType itemType = e.Item.ItemType;
if (itemType == ListItemType.Header)
{
DropDownList ddl = (DropDownList)e.Item.FindControl("DDLTop");
ddl.DataSource = MyDataGrid.DataSource;
ddl.DataTextField = "au_lname";
ddl.DataValueField = "au_id";
ddl.DataBind();
}
}
</script>
<form runat="server">
<asp:DataGrid id="MyDataGrid" runat="server" AutoGenerateColumns="false" OnItemDataBound="MyDataGrid_ItemDataBound">
<Columns>
<asp:BoundColumn HeaderText="Last Name"
ReadOnly="true"
DataField="au_lname"/>
<asp:TemplateColumn>
<HeaderTemplate>
<asp:DropDownList id="DDLTop" runat="server" AutoPostBack="True" Width="100%" OnSelectedIndexChanged="DDLChange">
</asp:DropDownList>
</HeaderTemplate> <ItemTemplate>
<asp:CheckBox id="chkMyDataGrid" runat="server" Text="Test"/>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
<asp:Button id="btn" runat="Server" text="submit" />
</form>
解决方案 »
- 请教 DataList 嵌套 GridView 如何取GridView的值?
- I need your help!!!!!!!!!!!!!!!!!!!!!!!!!!!!come on
- StringBuilder类型的字符串不能用+号吗?
- 分页控件问题?
- 如何让自定义控件的自定义属性出现在“查看源文件”中
- 请问在DataGrid里面的按钮列如何定义样式
- 如何在关闭子窗口的时候,同时刷新父窗口?
- 一个简单的问题
- 在做音乐管理系统的“下载”时,如何可以实现在安装了“迅雷”的计算机上使用迅雷下载?
- asp入门问题
- 请问:Exception:Collection was modified; enumeration operation may not execute。如何处理?谢谢
- 请问vb脚本和js脚本放在一起为什么总提示js脚本出错?
{
if(e.Item.ItemType == ListItemType.Header)
{
DropDownList DDLTop=( (DropDownList)e.Item.FindControl("DDLTop") );
}
DDLTop.SelectedIndexChanged += new System.EventHandler(yourDropDownList_SelectedIndexChanged);
}private void yourDropDownList_SelectedIndexChanged(object sender, System.EventArgs e)
{}
<asp:DropDownList Runat="server" ID="DDLTop" OnSelectedIndexChanged="ItemChang" AutoPostBack="True"></asp:DropDownList>在.aspx.cx中:
public void ItemChang(Object sender, EventArgs e) //一定是要public或protected
{DropDownList ddl = (DropDownList)DataGrid1.Items[i].Cells[1].Controls[1];
//i即DataGrid1中的列号}
'加上你的程序在此事件内就行了
End Sub