在Datagrid中编辑时出现DropDownList,怎么让DropDownList某一个Item根据值选中啊?

melonchen 2003-09-12 04:29:15
在Datagrid中编辑时出现DropDownList,怎么让DropDownList某一个Item根据值选中啊?

...全文
150 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangjingdai 2003-09-16
  • 打赏
  • 举报
回复
用以下代码可以实现dropdownlist的动态item绑定,dv是在后台声名和获得的dataview
<asp:TemplateColumn SortExpression="functionname" HeaderText="name">
<ItemTemplate>
<asp:Label id=Label2 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.FunctionName") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<FONT face="宋体">
<asp:DropDownList id="Dropdownlist1" runat="server" DataValueField="id" DataTextField="functionname" DataSource="<%# dv %>" >
</asp:DropDownList></FONT>
</EditItemTemplate>
</asp:TemplateColumn>
潜水员2099 2003-09-16
  • 打赏
  • 举报
回复
gz
古人猿类 2003-09-15
  • 打赏
  • 举报
回复
挺好的!
nedvedlh 2003-09-15
  • 打赏
  • 举报
回复
DropDownList1.Items.FindByValue(value).Seleted=true;
取文本直:
DropDownList1.Items.FindByText(value).Seleted=true;
konglord 2003-09-15
  • 打赏
  • 举报
回复
在datagrid的DataGrid1_ItemDataBound事件中用我上面给你的方法 就可以了
konglord 2003-09-15
  • 打赏
  • 举报
回复
给你一段我的代码 你自己看看也许有帮助
DropDownList dr=(DropDownList)e.Item.FindControl("Dropdownlist7");
ListItem mylistitem=dr.Items.FindByValue(((DataSet)ViewState["ds"]).Tables[0].Rows[e.Item.ItemIndex]["OilTankOut"].ToString());
int tankid=dr.Items.IndexOf(mylistitem);
dr.SelectedIndex=tankid;
zhangjingdai 2003-09-15
  • 打赏
  • 举报
回复
我试验了changezhong(小刀) 的代码,不灵的,不知问题出在何处?
我也想在datagrid中的模板加入一个dropdownlist,而其中的listitem是动态加入的,关注!
melonchen 2003-09-13
  • 打赏
  • 举报
回复
this.datagridNewComerList.DataSource=dt;
this.datagridNewComerList.DataBind();


datagridNewComerList是指什么阿?
changezhong 2003-09-13
  • 打赏
  • 举报
回复
我手写的,绝非 Copy,可以运行,好累~~~
changezhong 2003-09-13
  • 打赏
  • 举报
回复
我手写的,绝非 Copy,可以运行,好累~~~
changezhong 2003-09-13
  • 打赏
  • 举报
回复
是这样的,在编辑命令中,如绑定之前使用FindControl是会报错的,你可以尝试先绑定,然后再抓值
1.在定义DataGrid的时候这样定义:
..........
<ItemTemplate>
<asp:Label ID="departmentid_id" Text='<%# DataBinder.Eval(Container, "DataItem.departmentid") %>' Runat="server" Visible=False>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="editdep" Runat="server" width="120>
</asp:DropDownList>
</EditItemTemplate>
2.给ddl(dropdownlist)添入子项
先不要给他数据源,因为现在给他也没用,因为他自身还没有ListItem
也可以这样定义
..........
<ItemTemplate>
<asp:Label ID="departmentid_id" Text='<%# DataBinder.Eval (Container, "DataItem.departmentid") %>' Runat="server" Visible=False>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="editdep" Runat="server" width="120>
<asp:ListItem>a</asp:ListItem>
<asp:ListItem>b</asp:ListItem>
<asp:ListItem>c</asp:ListItem>
......
</asp:DropDownList>
</EditItemTemplate>
当然,如果多了就需要用下面的方法进行绑定了
假设数据源为dt(从数据库捞出来的DataTable),你需要绑定的是第2列(从0列开始算)
那么后台的datagrid_editcommand应该这样写:
private void datagrid_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e))
{
datagrid.EditItemIndex=e.Item.ItemIndex;
this.datagridNewComerList.DataSource=dt;
this.datagridNewComerList.DataBind();//绑定以后,编辑的ddl控件才有效
DropDownList ddl_dep=new DropDownList() ;//申明一个控件来存放来自datagrid的ddl控件
ddl_dep=(DropDownList)datagrid.Items[(int)e.Item.ItemIndex].Cells[2].Controls[1];
for(int i=0;i<dt.count;i++)
{
string str=dt.Rows[i][2].ToString().Trim();
ListItem obj_ListItem = new ListItem(str,i);
ddl_dep.Items.Insert(objListItem,objListItem);
}

//3.用一个循环实现在Datagrid中编辑时出现DropDownList,怎么让DropDownList某一个Item根据值选中
string value=((Label)e.Item.Cells[0].FindControl("departmentid_id")).Text
for(int i=0;i<ddl_dep.Items.Count;i++)
{
if(ddl_dep.Items[i].Value.ToString().Trim().ToUpper()==value.ToUpper())
{
ddl_dep.Items[i].Selected=true;
break;
}
}
}
这样可以实现
melonchen 2003-09-12
  • 打赏
  • 举报
回复
我换了阿!
string value=((Label)e.Item.Cells[0].FindControl("departmentid_id")).Text,可还是报错!
jjcccc 2003-09-12
  • 打赏
  • 举报
回复
要把value换成你数据源的实际字段啊.
melonchen 2003-09-12
  • 打赏
  • 举报
回复
在什么的地方加啊?
我的Datagrid是:
..........
<ItemTemplate>
<asp:Label ID="departmentid_id" Text='<%# DataBinder.Eval(Container, "DataItem.departmentid") %>' Runat="server" Visible=False>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="editdep" Runat="server" DataSource="<%#personDatagrid_Dataview()%>" DataTextField="department" DataValueField="id" Visible="true">
</asp:DropDownList>
</EditItemTemplate>

根据departmentid_id的值来选中DropDownList的某项,如果在OnEditCommand的事件中加入DropDownList1.Items.FindByValue(value).Seleted=true;程序就会报错,说未将对象实例化。
jjcccc 2003-09-12
  • 打赏
  • 举报
回复
DropDownList1.Items.FindByValue(value).Seleted=true;
把value换成你的实际值(变量)。
第1章 空 第2章 ASP.NET运行模型 21.如何在页面应用javascript脚本-示例1 21.如何在页面应用javascript脚本-示例2 22.如何实现从服务器端向页面动态添加javascript脚本-示例1 22.如何实现从服务器端向页面动态添加javascript脚本-示例2 24.如何处理多页面重定向到同一页面后的返回问题 25.如何用Response.Redirect方法传递汉字 29.如何利用输出缓存技术缓存整个页面 30.如何利用片段缓存技术对用户控件进行缓存 31.如何利用数据缓存技术提高程序的性能 33.如何实现当页面产生错误重定向到自定义错误界面 35.如何在程序读写Web.config文件 37.如何使用CSS文件定义控件的样式 38.如何启用和禁用ViewState保存状态信息的功能 39.如何应用IsPostBack控制页面的加载 41.如何使用Trace对象进行跟踪调试(页面级) 42.如何使用#Include语法将文件添加到页面 43.如何使用编程的方式处理异常信息 44.如何将网页错误信息写入事件日志 第3章 常用Web服务控件 46.如何使用Label控件动态显示文本信息 47.如何实现当鼠标移到控件显示提示信息 48.如何在Web应用程序实现快捷键功能(使用脚本实现) 48.如何在Web应用程序实现快捷键功能(使用属性实现) 49.如何设置页面上控件的Tab键顺序 50.如何实现用回车键代替Tab键的功能 51.如何为按钮键添加消息框 52.Button、LinkButton和ImageButton服务控件的区别及应用 54.如何使用CheckBox和CheckBoxList控件(CheckBox示例) 54.如何使用CheckBox和CheckBoxList控件(CheckBoxList示例) 55.如何使用RadioButton和RadioButtonList控件(RadioButton示例) 55.如何使用RadioButton和RadioButtonList控件RadioButtonList示例) 56.如何使用Panel控件操作一组控件 57.如何使用Table控件组织页面的内容 58.如何实现DropDownList控件选项的添加、删除等操作 59.如何实现间接改变DropDownList控件的当前选项 60.如何实现两个或多个DropDownList控件的联动 61.如何实现ListBox控件选项的上移、下移、添加和删除操作 62.如何实现ListBox控件选项的双击事件 63.如何动态设置ListBox控件各选项的背景颜色 64.如何在页面动态创建控件 65.如何为HTML服务器控件的事件添加自定义方法 第4章 验证控件 67.如何使用RequiredFieldValidator控件验证用户是否输入信息 68.如何使用RegularExpressionValidator控件验证E-mail地址和邮编等格式 69.如何使用RangeValidator控件验证输入的信息是否在指定范围内 70.如何使用CompareValidator控件对两个输入控件比较验证 71.如何使用CustomValidator控件自定义验证格式 72.如何使用ValidationSummary控件总结所有验证控件的错误信息 73.如何创建自定义功能的验证控件 74.如何禁用服务器控件的验证功能 75.如何控制页面部分验证控件有效 76.如何实现控件即验证功能 77.如何使用验证控件综合验证用户注册页面 78.如何验证DataGrid控件的编辑列 81.如何使用验证控件验证日期类型的输入(CompareValidator) 81.如何使用验证控件验证日期类型的输入(CustomerValidator) 81.如何使用验证控件验证日期类型的输入(RegularValidator) 第5章 高级Web控件 82.如何在网页使用Calendar Web控件显示和选择日期 83.如何在Calendar Web控件控制个别日的内容及显示 84.如何在Calendar Web控件控制用户日期选定 86.如何使用XML控件显示XML文件和进行XSLT转换 87.如何使用AdRotator Web控件制作广告发布程序-示例1 87.如何使用AdRotator Web控件制作广告发布程序-示例2 88.如何创建用户控件 89.如何将Web窗体转换成用户控件 90.如何实现动态加载用户控件 92.如何使用TabStrip Web和MultiP

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧