为什么不能显示数据,我在gridview中添加DropdownList控件 代码如下

pwscusoftware 2011-07-21 11:55:25
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList DropDownList1 = (DropDownList)GridView1.FindControl("DropDownList1");
string sql = "select Priority from [User] ";
SqlDataAdapter da = new SqlDataAdapter(sql, DBHelper.Connection);
DataSet ds = new DataSet();
da.Fill(ds);
DropDownList1.DataSource = ds;
DropDownList1.DataTextField = "Priority";
DropDownList1.DataValueField = "Priority";
DropDownList1.DataBind();
}
...全文
129 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
pwscusoftware 2011-07-22
  • 打赏
  • 举报
回复
public virtual Control FindControl(
string id
)

类型:System.String
要查找的控件的标识符。
我的DropDownList的ID就是DropdownList1
  • 打赏
  • 举报
回复
考察一个asp.net开发人员没有有正规学过asp.net,其实直接问问FindControl机制,看看他会不会正确使用FindControl方法,就能说明不少问题了。
pwscusoftware 2011-07-22
  • 打赏
  • 举报
回复
谢谢大家
yi_iy
那这个事件改写到哪个事件里面?
Editing?
  • 打赏
  • 举报
回复
看看GRidView的行的定义
public class GridViewRow : TableRow, IDataItemContainer, INamingContainer
{
当你看到它有INamingContainer,就应该知道FindControl代码该如何写。

看看那msdn: http://msdn.microsoft.com/zh-cn/library/486wc64h.aspx
要注意它写的:在当前的命名容器中搜索带指定 id 参数的服务器控件。这个命名容器,就是指 NamingContainer。

从一个控件对象上调用FindControl方法的机制,是首先找到这个对象的NamingContainer(假如说控件自己具有INamingContainer接口,那么就是自己;否则就是父控件的NaminContainer),然后从这个开始向下在整个容器中查找。但是每当遇到具有 INamingContainer 接口的控件就不再查找其内部了。

GridView具有这个接口
public class GridViewRow : TableRow, IDataItemContainer, INamingContainer
{
具有这个接口,所以你在GridView之外(不管是之上还是同级)的控件上FindControl是找不到它里边的控件的。

同样,由于每一行都有这个接口,所以你在GridView上执行FindControl也找不到每一行内的控件。而每一行中间的每个单元格并没有这个接口
public class TableCell : WebControl
{
所以你在任意一个列上执行FindControl,都可以找到它所在这个行里边其它列里的控件。
  • 打赏
  • 举报
回复
FindControl方法遇到具有 INamingContainer 接口控件就停止再向里边查找了。如果你要找,你应该直接给出它的 INamingContiner 范围。例如
Gridview1.Rows[3].FindControl("drp")。


要知道,每一行都可能有一个ID是DropDownList1的控件呢!因此页面上至少有很多个DropDownList1呢,不是一个。
  • 打赏
  • 举报
回复
DropDownList1_SelectedIndexChanged 的意思是当DropDownListt1控件的改变的时候才出发的事件。

你的这段代码不应该在这个事件里面写。

应该是在Gridview控件加载一个事件里面写。
aXen 2011-07-22
  • 打赏
  • 举报
回复
page或gridview的DataBind有没有调用 ?
没做过,建议一下。
课程首先介绍了Flutter的主要知识,通过4个案例消化吸收知识点。并通过手把手一步步带您完成一个【我的备忘录】APP项目,使得您真正认识Flutter在实际项目的优势。  通过本课程学习您可以学习到Flutter技术如下知识:第1章 Flutter概述知识点:移动应用开发现状、移动应用开发类型、Hybrid与移动跨平台开发策略、Flutter是什么?、Flutter特点、Flutter体系结构。第2章 Flutter开发环境搭建知识点:基于Windows的Android开发环境、基于macOS的iOS开发环境、IDE开发工具设置。第3章 Flutter基础知识点:完成一个Flutter程序、一切都是组件(Widget)、组件分类、使用图片和图标资源、使用文本组件、增加调试组件工具。第4章 布局组件知识点:Flutter布局概述、容器布局(Container)、行(Row)、列(Column)布局、层叠布局、ListView、GridView。第5章 Material风格组件知识点:按钮、输入框、复选框、单选按钮、开关按钮、滑块。第6章 iOS Cupertino风格组件知识点:iOS Cupertino页面、Cupertino按钮、Cupertino开关按钮、Cupertino滑块、Cupertino分段件。第7章 状态管理知识点:状态管理概述、局部状态管理、全局状态管理。第8章 导航知识点:导航概述、面包屑导航、标签导航、页面组件分散在不同文件、全局状态管理与导航。第9章 工程依赖管理知识点:工程依赖管理概述、pub依赖管理工具。第10章 数据存储知识点:Flutter数据存储策略、键值对数据存储、文件数据存储、SQLite数据存储、示例:数据CRUD操作。第11章 网络通信知识点:搭建自己的Web服务器、使用http包、示例:城市信息列表。第12章 项目实战:我的备忘录APP知识点:备忘录APP项目说明、备忘录项目后台Web服务API说明、备忘录APP项目分析与设计、初始化工程、持久层实现、表示层实现。 

110,587

社区成员

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

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

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