页面aspx代码:<asp:dropdownlist id="trMaterialID" 
    DataValueField='<%# ((DataRowView)Container.DataItem)["MaterialID"]  %>' 
    DataTextField='<%# ((DataRowView)Container.DataItem)["MaterialName"]  %>' 
    runat="server" Visible="False" Width="100"></asp:dropdownlist>Repeater的ItemDataBound事件代码:
  DropDownList ddlMaterialID;
  if (e.Item.ItemType==ListItemType.Item)
  {
     ddlMaterialID=(DropDownList)e.Item.FindControl("trMaterialID");
     ddlMaterialID.DataSource=dt.DefaultView;
     ddlMaterialID.DataValueField="MaterialID";
     ddlMaterialID.DataTextField="MaterialName";
     ddlMaterialID.DataBind(); ---->出错行
  }错误信息:System.Web.HttpException: DataBinder.Eval:“System.Data.DataRowView”不包含名称为 XXXXX 的属性。
说明:XXXX---是在数据库里表里的MaterialName值

解决方案 »

  1.   

    你已经把他强制转化成DataRowView了!当然报错了。。楼主到底想做什么。能说清楚点么?
      

  2.   

    DataRowView 还有啥属性?show之类的?设置为true?
      

  3.   

    我想在Repeater模板列中绑定一个DropDownList,此DropDownList要绑定数据表中一个字段
      

  4.   

    我想做的事就是在Repeater中使用模板列来行编辑repeater的数据,有一个模板列使用DropDownList来选择数据,然后使用更新、取消来完成行编辑。
      

  5.   

    还有一个问题就是如何在DropDownList绑定数据后,自动指到数据表中对应字段值,即如果数据表中字段是"001",那么DropDownList在绑定数据后的SelectedValue也等于"001"
      

  6.   

    http://topic.csdn.net/t/20050904/12/4248514.html
      

  7.   

    DataValueField是指的你要绑定的字段列啊,你这么绑定是什么意思呢?
    <asp:dropdownlist   id="trMaterialID"  
            runat="server"   Visible="False"   Width="100"> </asp:dropdownlist> 
    这样不就可以了?你在下面动态绑定了。完全能实现啊。
    不过每看明白你这个到底要实现什么功能。
      

  8.   

    绑定完了之后,设置SelectedValue或者SelectedIndex就会选中你那对应的值了。