向GridView中DropDownList控制项添加OnSelectedIndexChanged实现级联动 (转)
来源:互联网 发布:如何开通手机淘宝花呗 编辑:程序博客网 时间:2024/06/05 04:58
转自 http://www.cnblogs.com/andhm/archive/2010/05/09/1731031.html
OnSelectedIndexChanged事件直接关联服务端的方法即可,没有必要去关联一个button,在SelectedIndexChanged事件是可以通过sender找到这个下拉框事件,通过两次parent找到当前的Gridviewrow,在findcontrol找到该行的另一个下拉框,绑定数据即可。
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnRowDataBound="GridView1_RowDataBound">
<Columns>
<asp:TemplateField>
<HeaderTemplate>
序号
</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="lblIndex" runat="server" Text="<%# Container.DataItemIndex %>"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>
合約編號
</HeaderTemplate>
<ItemTemplate>
<asp:DropDownList ID="ddlContractNO" runat="server" AutoPostBack=true OnSelectedIndexChanged="ddlContractNO_SelectedIndexChanged">
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>
料号
</HeaderTemplate>
<ItemTemplate>
<asp:DropDownList ID="ddlMaterielNo" runat="server">
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if(this.Page.IsPostBack)
return;
BindData();
}
protected void BindData()
{
ArrayList al = new ArrayList();
for (int i = 0; i < 15; i++)
{
al.Add(i);
}
this.GridView1.DataSource = al;
this.GridView1.DataBind();
}
/// <summary>
/// 获取所有的合同
/// </summary>
/// <returns></returns>
protected List<Contract> GetAllContract()
{
List<Contract> list = new List<Contract>();
for (int i = 0; i < 5; i++)
{
Contract contract = new Contract();
contract.Id = i + 1;
contract.Name = "contract" + contract.Id;
contract.No = "No" + contract.Id;
list.Add(contract);
}
return list;
}
protected List<Materiel> GetAllMaterielByContractNo(string contractNo)
{
List<Materiel> list = new List<Materiel>();
for (int i = 0; i < 10; i++)
{
Materiel materiel = new Materiel();
materiel.Id = i + 1;
materiel.Name = "materiel" + contractNo + materiel.Id;
materiel.No = contractNo + materiel.Id;
materiel.ContractNo = contractNo;
list.Add(materiel);
}
return list;
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType != DataControlRowType.DataRow)
return;
DropDownList ddlContractNO = ((DropDownList)e.Row.Cells[1].FindControl("ddlContractNO"));
ddlContractNO.DataSource = GetAllContract();
ddlContractNO.DataTextField = "No";
ddlContractNO.DataBind();
ddlContractNO.SelectedIndex = 0;
BindMaterielDropDownList(e.Row, ddlContractNO.SelectedValue);
}
protected void ddlContractNO_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList ddlContractNO = (DropDownList)sender;
GridViewRow row = (GridViewRow)ddlContractNO.Parent.Parent;
BindMaterielDropDownList(row, ddlContractNO.SelectedValue);
}
protected void BindMaterielDropDownList(GridViewRow row,string contractNo)
{
DropDownList ddlMaterielNo = (DropDownList)row.Cells[2].FindControl("ddlMaterielNo");
ddlMaterielNo.DataSource = GetAllMaterielByContractNo(contractNo);
ddlMaterielNo.DataTextField = "No";
ddlMaterielNo.DataBind();
}
}
- 向GridView中DropDownList控制项添加OnSelectedIndexChanged实现级联动 (转)
- DropDownList中OnSelectedIndexChanged问题
- GridView下DropDownList 的选择方法onselectedindexchanged 实现方法
- dropdownlist实现无刷新页面级联gridview
- ASP.NET中实现Ajax级联DropDownList
- GridView模板列中添加DropDownList
- 怎样在DropDownList控件中响应OnSelectedIndexChanged事件
- 怎样在DropDownList控件中响应OnSelectedIndexChanged事件
- 在Salesforce中实现4级联动
- DropDownList实现连动
- Ajax实现五级联动--(一)
- GridView 的 onselectedindexchanged 方法
- asp:DropDownList控件触发OnSelectedIndexChanged
- 如何在SharePoint2007中实现下拉列表(DropDownList)的级联菜单效果
- gridview 里实现 DropDownList
- 如何在FormView中实现DropDownList连动选择
- 向gridview中添加超级链接列
- Gridview中嵌入DropDownList
- 《searching the web》学习笔记
- sap几个模块的常用表关系
- MeeGo开发者(一):何为MeeGo?
- INamingContainer接口的另外作用
- DropDownList从XML配置文件动态获取下拉列表值
- 向GridView中DropDownList控制项添加OnSelectedIndexChanged实现级联动 (转)
- php时分秒倒计时
- Lotus的JAVA与DOMINO通过LDAP集成方法
- log4j各个日志级别详细的解释
- 从字符串中循环提取字符
- (转)如何在linux C/C++语言中调用 sqlite 的函数接口来实现对数据库的管理
- (asterisk)dialplan 中 Application 函数介绍(个人笔记二)
- win7 vs2008 release mt.exe停止工作
- 股票操作记录 2010.12.28