关于datagird中动态绑定dropdownlist的问题
我是一个大二学生,放假在学ASP.NET,写DataGird的时候遇到一点问题,想请教一下。
我的问题其实你在CSDN上有说明,我按提供的文档,模仿着写下来,但每次都不能正确的把DropDownList绑定。
大家能帮我看看问题出在那里吗?谢谢!
public String [] strIsDone = new String[2] {"未完成", "已完成"};
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!(Page.IsPostBack))
{
this.LoadData(strCmd);
this.UpdateView();
}
}
private void LoadData(string str)
{
SqlConnection conn=new SqlConnection(strConn);
SqlDataAdapter da=new SqlDataAdapter(str,conn);
DataSet ds=new DataSet();
da.Fill(ds,"RepairRecord");
Session["Repair"]=ds;
}
private void UpdateView()
{
DataSet ds=(DataSet)Session["Repair"];
grid.DataSource=ds.Tables["RepairRecord"];
grid.DataBind();
}
public void ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.EditItem)//每次只能绑定到strIsDone数组的的第一个元素上,也就是说,drv["IsDone"]没有起到作用。
{
DataRowView drv = (DataRowView)e.Item.DataItem;
String currentRole = drv["IsDone"].ToString();
DropDownList ddlTemp=(DropDownList) e.Item.FindControl("ddlIsDone");
ddlTemp.SelectedIndex = ddlTemp.Items.IndexOf(ddlTemp.Items.FindByText(currentRole));
}
}
public void EditCommand(object sender, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
grid.EditItemIndex=e.Item.ItemIndex;
this.UpdateView();
}
<asp:TemplateColumn HeaderText="完成"><ItemStyle Wrap="False" HorizontalAlign="Center"VerticalAlign="Middle">
</ItemStyle>
<ItemTemplate>
<asp:Label id=lblIsDone runat="server" Width="72px" Text='<%# DataBinder.Eval(Container, "DataItem.IsDone")%'></asp:Label> </ItemTemplate><EitItemTemplate>
<asp:DropDownList id=ddlIsDone runat="server" Width="88px" DataSource="<%# strIsDone %>">//绑定到string数组中
</asp:DropDownList></EditItemTemplate></asp:TemplateColumn>
问题点数:0、回复次数:6Top
1 楼liangshaojun(君猎)回复于 2004-08-03 10:07:05 得分 0
ds.Tables["RepairRecord"];改为
ds.Tables["RepairRecord"].DefaultView;Top
2 楼qwiz(abyss)回复于 2004-08-04 22:08:38 得分 0
试了,还是不行!Top
3 楼qwiz(abyss)回复于 2004-08-04 22:09:24 得分 0
大家再帮我看看!!!!Top
4 楼lyhold(让你飞)回复于 2004-08-05 12:36:25 得分 0
<asp:DropDownList id=ddlIsDone runat="server" Width="88px" DataSource="<%# strIsDone %>">//绑定到string数组中
strIsDone 是个函数,返回一个hashtable
你要在cs下里些着个函数,
public strIsDone ()
{
HashTable aa=new HashTable();
aa.Add();
.....
return aa;
}Top
5 楼vzxq(灵感人)回复于 2004-08-05 13:17:51 得分 0
加上断点看看执行情况Top
6 楼qwiz(abyss)回复于 2004-08-06 02:47:35 得分 0
加上断点后,发现数据是正确绑定的,即当 String currentRole = drv["IsDone"].ToString()中,currentRole显示正确的值。执行DropDownList ddlTemp=(DropDownList) e.Item.FindControl("ddlIsDone")时,会自动把selectIndex设为0,即绑定到“未完成”上。 ddlTemp.SelectedIndex = ddlTemp.Items.IndexOf(ddlTemp.Items.FindByText(currentRole))完全不起作用。我甚至把 ddlTemp.SelectedIndex = ddlTemp.Items.IndexOf(ddlTemp.Items.FindByText(currentRole))改为if(currentRole=="未完成") ddlTemp.SelectedIndex=0;else ddlTemp.SelectedIndex=1,也不起作用。但如果直接改为ddlTemp.SelectedIndex=1,则永远绑定到“已完成”上,请问是何原因。大家帮忙想想!!!!Top
相关问题
- 怎样使用DataGrid动态绑定DropDownList ?
- 100分求DataGrid中动态绑定DropDownList
- 关于ListBox和DropDownList动态数据绑定的问题,在线!!!
- 关于XML,DropDownList动态绑定的问题
- DataGrid中根据表中的列动态绑定DropDownList
- 关于在DataGrid中动态绑定DropDownList的问题!
- 在asp.net中,如何将table中的值动态绑定到DropDownList中?
- 求教:绑定列的datagird中,DataField是否可以动态指定?
- 求教:绑定列的datagird中,DataField是否可以动态指定?
- 求教:绑定列的datagird中,DataField是否可以动态指定?




