在DataGrid中绑定的DropDownList数据列表,怎么老是重复增加数据?
我分析是在DataGrid中ItemDataBound时列表已绑定一次,在编辑时点击DropDownList列表又绑定了一次,但如何只显示填充一个列表呢?请大写帮忙解决一下!页面文件有DataGrid,采用模板列如下:
<asp:TemplateColumn HeaderText="部门">
<ItemTemplate>
<asp:Label runat="server" ID=DeptName Text='<%# DataBinder.Eval (Container, "DataItem.Department") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate> <asp:DropDownList runat="server" ID="ddlDepartment"></asp:DropDownList>
</EditItemTemplate>
</asp:TemplateColumn>在CS文件中代码如下:
private void drgPerson_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
DataView dvDept=GetDataSet().Tables["department"].DefaultView; if(e.Item.ItemType==ListItemType.EditItem)
{
DataRowView drv = (DataRowView)e.Item.DataItem;
string current = drv["Department"].ToString(); DropDownList ddlCurrentDept = (DropDownList) e.Item.FindControl("ddlDepartment");
ddlCurrentDept.DataSource=dvDept;
ddlCurrentDept.DataTextField="Department";
ddlCurrentDept.DataValueField="DeptID";
ddlCurrentDept.DataBind(); ddlCurrentDept.SelectedIndex = ddlCurrentDept.Items.IndexOf(ddlCurrentDept.Items.FindByText(current));
DataTextField="Department"
DataValueField="DeptID"
}
}
我分析是在DataGrid中ItemDataBound时列表已绑定一次,在编辑时点击DropDownList列表又绑定了一次,但如何只显示填充一个列表呢?请大写帮忙解决一下!页面文件有DataGrid,采用模板列如下:
<asp:TemplateColumn HeaderText="部门">
<ItemTemplate>
<asp:Label runat="server" ID=DeptName Text='<%# DataBinder.Eval (Container, "DataItem.Department") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate> <asp:DropDownList runat="server" ID="ddlDepartment"></asp:DropDownList>
</EditItemTemplate>
</asp:TemplateColumn>在CS文件中代码如下:
private void drgPerson_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
DataView dvDept=GetDataSet().Tables["department"].DefaultView; if(e.Item.ItemType==ListItemType.EditItem)
{
DataRowView drv = (DataRowView)e.Item.DataItem;
string current = drv["Department"].ToString(); DropDownList ddlCurrentDept = (DropDownList) e.Item.FindControl("ddlDepartment");
ddlCurrentDept.DataSource=dvDept;
ddlCurrentDept.DataTextField="Department";
ddlCurrentDept.DataValueField="DeptID";
ddlCurrentDept.DataBind(); ddlCurrentDept.SelectedIndex = ddlCurrentDept.Items.IndexOf(ddlCurrentDept.Items.FindByText(current));
DataTextField="Department"
DataValueField="DeptID"
}
}
解决方案 »
- 请问如何在一个页面内根据参数显示不同内容
- ASP.NET导出PDF的函数(如下),只能导出一次,能不能让它可以导出多次,应该怎么修改,请赐教!
- |zyciis| 在ASP.NET中如何让一个页面只能接收POST而不能接收GET
- 应用teechart2009forvs2005的问题
- 通过“aspnet配置”设置的访问规则存在那里了
- 如何通过Button动态添加其它控件,如何用js验证后提交表单?
- 如何动态刷新框架网页
- 怎样得到GridView中模版列中的Button所在行?
- 关于‘三楼楼主’提供那个精品OA的源码有编译成功的吗?进来帮下忙
- 我下在了一个程序,然后放在虚拟目录调试后出现下面的错误?这是怎么回事呢?
- 在应用程序级别以外使用注册为 allowDefinition='MachineToApplication' 的节是错误的,如何解决?急!急!急!急!急!
- 50台机器,分布在两个楼层的8个办公室里,怎么样建局域网最经济
if (!this.Page.IsPostBack)
{
ddlCurrentDept.DataSource=dvDept;
ddlCurrentDept.DataTextField="Department";
ddlCurrentDept.DataValueField="DeptID";
ddlCurrentDept.DataBind();
}
是不是 DropDownList 在页面显示的时候是 最高层~~~~ 容器的层可以高于DropDownList 但是随出来的问题是 容器里面的 东西怎么和完结联系???
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
string strSql;
DropDownList DropDownList1 = new DropDownList();
try
{
if (!myclsDbCommon.OpenConnection())
{
System.Diagnostics.Debug.Write("不能连接数据库!");
} if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
DropDownList1 = (DropDownList)e.Item.Controls[2].FindControl("DropDownList1");
strSql = "SELECT DISTINCT";
strSql += " ID ";
strSql += " FROM Employee"; OleDbDataReader myReader = null;
if (!myclsDbCommon.QueryWithDataReader(strSql,ref myReader))
{
System.Diagnostics.Debug.Write("SQL错误!");
} DropDownList1.Items.Clear();
DropDownList1.Items.Add("");
while(myReader.Read())
{
DropDownList1.Items.Add(myReader["ID"].ToString());
}
myReader.Close();
myReader = null;
} }
catch(Exception ex)
{
System.Diagnostics.Debug.Write(ex.ToString());
}
finally
{
if (!myclsDbCommon.CloseConnection())
{
System.Diagnostics.Debug.Write("数据库关闭所错误!");
}
}
}