CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

关于datagird中动态绑定dropdownlist的问题

楼主qwiz(abyss)2004-08-03 09:51:01 在 .NET技术 / ASP.NET 提问

我是一个大二学生,放假在学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是否可以动态指定?

关键词

  • ds
  • grid
  • ddltemp
  • currentrole
  • strisdone
  • repairrecord
  • 绑定
  • dropdownlist
  • 数组
  • updateview

得分解答快速导航

  • 帖主:qwiz

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo