asp.net中的Datagrid如何实现动态下拉框的功能?

 我来答
手机用户18693
2012-10-24 · 超过60用户采纳过TA的回答
知道答主
回答量:113
采纳率:0%
帮助的人:146万
展开全部
可以!把打算下拉的那列变成模板列(TemplateField),在模板列中拖入下拉框,这个最好用IDE完成,完成之后看前台源码如下:(这是我的程序片段)
<asp:TemplateField HeaderText=三级模板
<ItemStyle HorizontalAlign=Center VerticalAlign=Middle Width=100px /
<ItemTemplate
&nbsp;<asp:DropDownList ID=DDLContent runat=server DataTextField=模板名称 DataValueField=模板编号 AutoPostBack=True OnSelectedIndexChanged=DDLContent_SelectedIndexChanged
</asp:DropDownList
<asp:Label ID=LbtopicID runat=server Visible=False</asp:Label
</ItemTemplate
</asp:TemplateField
在后台要做两件事,1是把数据库中的数据绑定到下拉框,2是当下拉框被选择时程序要做出的反应:
1.把数据库中的数据绑定到下拉框
protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e)//该事件是自动生成{if (e.Row.RowType == DataControlRowType.DataRow)//如果此行是DataGrid控件数据行{string topicID = GridView.DataKeys[e.Row.RowIndex].Value.ToString();//获取本行关键字的值
//***************下面是三级模板列的绑定**********************
if (((DropDownList)e.Row.FindControl(DDLContent)) != null)//我的下拉框叫DDLContent{DataSet ds = cd.getContentModel(topicID);//从数据库中取得要放入下拉框的数据
DropDownList DDLContent = (DropDownList)e.Row.FindControl(DDLContent);
DDLContent.Items.Clear();
DDLContent.DataSource = cd.listModel();
DDLContent.DataBind();//绑定
if (ds.Tables[0].Rows.Count 0)//{DDLContent.SelectedValue = ds.Tables[0].Rows[0][模板编号].ToString();}else{DDLContent.Items.Insert(0, 请选择...);//用户没进行选择时显示这行}}//*****************三级模板列绑定结束************************}}
2.如果被绑定的下拉框被用户选择,那么。。。
protected void DDLContent_SelectedIndexChanged(object sender, EventArgs e){//下面都是我的具体业务逻辑,你把它们换成你自己的
GridViewRow GVR = (GridViewRow)((Control)sender).Parent.Parent;
DropDownList DDLC = (DropDownList)(GVR.FindControl(DDLContent));
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式