日期:2014-05-19  浏览次数:20676 次

DataGrid中使用DropDownList的问题(急)
我在DataGrid绑定数据后,选中 "编辑 "其中一行。在Edit事件中把该行某个列的TextBox隐藏后加入了一个DropDownList。目的是只能选择DropDownList中的值。

((TextBox)tableCell.Controls[0]).visible   =   false;
tableCell.Controls.Add(ddl);//加入已准备好的下拉列表

但更改了页面上DropDownList的值后,点DataGrid上该行的 "更新 "按钮回到Update方法后,DropDownList已经不见了。调试时走Page_Load的时候,DropDownList就已经不在DataGrid里了。tableCell.Controls只有一个实例,还是TextBox。



------解决方案--------------------
点更新,页面又从新回刷过了.这时候要考虑是否DataGrid是否从新刷新了
------解决方案--------------------
dropdownlist在你Datagrid生成的时候就一起创建,只不过是隐藏的,当你点更新的时候用js控制其显示.你看这种方式是否能解决你的问题,因为如果是你点更新的时候创建dropdownlist当刷新后,Page_load后,该控件本身就不存在了
------解决方案--------------------
在web方式下页面控件是无状态的,你的页面每次回发后程序不会重新加载原来动态创建的控件.

所以LZ的方法是行不通的,其实可以这样:
在 <ItemTemplate> 放置textbox;
在 <EditItemTemplate> 放置dropdownlist;
------解决方案--------------------
楼上正解!
------解决方案--------------------
学习了.
------解决方案--------------------
http://blog.csdn.net/wangkun9999/archive/2007/03/02/1518759.aspx
------解决方案--------------------
重新加载原来动态创建的控件
------解决方案--------------------
dropdownlist没有文本输入框框的,我想用层做一个输入框框,我的dropdownlist是动态生成的,这个时候我就要将层移动到dropdownlist上去。请问我怎么获取dropdownlist的坐标值,然后让层覆盖该dropdownlist?


以下帖子给分。
如何在C#.net WEB2005开发中获取dropdownlist在网页中的位置坐标?
http://community.csdn.net/Expert/topic/5481/5481151.xml?temp=.4136316
------解决方案--------------------
dropdownlist没有文本输入框框的,我想用层做一个输入框框,我的dropdownlist是动态生成的,这个时候我就要将层移动到dropdownlist上去。请问我怎么获取dropdownlist的坐标值,然后让层覆盖该dropdownlist?


以下帖子给分。
如何在C#.net WEB2005开发中获取dropdownlist在网页中的位置坐标?
http://community.csdn.net/Expert/topic/5481/5481151.xml?temp=.4136316
------解决方案--------------------
全局的DropDownList也不会得到.
因为页面每次回传都会重新初始化页面级变量,所以取不到页面上的值,这和PageLoad有关.

要么把DropDownList直接做成模板列.