要在DataGrid中使用DropDownList 需要使用到
1。DataGrid的DataGrid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)事件
ItemDataBoundz在项被数据绑定到DataGrid控件后发生
2。ListTypeItem枚举
指定列表控件中项的类型
| 成员名称 | 说明 |
|---|---|
| AlternatingItem | 交替(从零开始的偶数索引)单元格中的项。它是数据绑定的。 |
| EditItem | 列表控件中当前处于编辑模式的项。它是数据绑定的。 |
| Footer | 列表控件的页脚。它不是数据绑定的。 |
| Header | 列表控件的页眉。它不是数据绑定的。 |
| Item | 列表控件中的项。它是数据绑定的。 |
| Pager | 页导航,显示定位到与 DataGrid 控件关联的不同页的控件。它不是数据绑定的。 |
| SelectedItem | 列表控件中的选定项。它是数据绑定的。 |
| Separator | 列表控件中项之间的分隔符。它不是数据绑定的。 |
例子:
aspx页---只给出页中DataGrid部分
<asp:DataGrid id=“myDatagrid“ Runat="server">
<COLUMNS>
<asp:TemplateColumn HeaderText="事务">
<ITEMTEMPLATE>
<%# DataBinder.Eval(Container.DataItem,"事务") %>
</ITEMTEMPLATE>
<EDITITEMTEMPLATE>
<asp:DropDownList id=dropdown runat="server"></asp:DropDownList> //DropDownList在那种标签中决定数据绑定的ListTypeItem的选择
</EDITITEMTEMPLATE>
</asp:TemplateColumn>
</COLUMNS><BR></asp:DataGrid></P>
.CS文件
private void myDatagrid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.EditItem)? //如果出现“未将对象引用设置到对象的实例”的错误,多半缺少这一判断或者是ListItemType选择错误。
{
SqlConnection conn = new SqlConnection(“DataBase=Test;Uid=sa;Pwd;Server=(local)“);
SqlDataAdapter da = new SqlDataAdapter(“select * from Users“,conn);
DataSet ds = new DataSet();
da.Fill(ds);
DropDownList drop = (DropDownList)e.Item.FindControl(“dropdown“);
drop.DataTextField = "ID";
drop.DataValueField ="CusName";
drop.DataSource = ds.Tables[0].DefaultView;
drop.DataBind();
}
}
博客介绍了在DataGrid中使用DropDownList的方法,需用到DataGrid的DataGrid_ItemDataBound事件和ListTypeItem枚举。给出了aspx页和.CS文件的示例代码,同时指出若出现‘未将对象引用设置到对象的实例’错误,可能缺少判断或ListItemType选择错误。
2975

被折叠的 条评论
为什么被折叠?



