解决方案 »

  1.   

    AutoGenerateColumns="False" 
    <asp:BoundField DataField="Id" HeaderText="账户标识" InsertVisible="false" ReadOnly="true" />            
      

  2.   


    1.DetailsView.AutoGenerateRows 属性
    获取或设置一个值,该值指示对应于数据源中每个字段的行字段是否自动生成并在 DetailsView 控件中显示。true 表示显示对应于数据源中每个字段的自动生成的绑定行字段,当然就会显示
    Id 1 
    LoginId xize 
    LoginPwd ** 
    Name ** 
    Address ** 
    Phone ** 
    Mail **@163.com 
    2.ReadOnly顾名思义,是判断是否只读,ReadOnly="true"  -> 更新失败,正常!!
    3.Visible顾名思义,判断是否可见,Visible="true"  -> 更新成功,正常!!!
      

  3.   

    替楼主解释
    -------------------
    <asp:BoundField DataField="Id" HeaderText="账户标识" InsertVisible="false" Visible="false" /> 
    为什么  Visible="false" -> 更新失败 
    为什么  Visible="true"  -> 更新成功 <asp:BoundField DataField="Id" HeaderText="账户标识" InsertVisible="false" ReadOnly="true" Visible="true" /> 
    为什么 ReadOnly="false" -> 更新成功 
    为什么 ReadOnly="true"  -> 更新失败 为什么
    AutoGenerateRows="ture" 
    上面的问题全部就没有了. -----------------------------是不是本来就应该这样的 谁让你在 .NET 框架下做事  没有去求证
      

  4.   

    在vs环境下经常出现一些莫名的问题有些是重新开启vs就可以解决的,很是郁闷....
      

  5.   

    AutoGenerateRows="ture" 会自动每列再生成一遍,加上你自己的,当然看起来就有2倍列了
    visiable=false的列是引用不到的,在客户端是不生成的,如果在rowupdating事件里取gridview的这行数据,就会出错
    readonly可能是都readonly=true了你还在rowupating事件里赋值
      

  6.   

    DetailsView 是什么东西,自己看说明啊
      

  7.   

    LZ这个描述,应该是要在visible=false的情况下进行编辑
    你不要在前台写visible=false,在后台的databound事件里写,这样就能取到对应的列
      

  8.   

    AutoGenerateRows="ture" 
    控件属性值弄错,使得自动生成行.
      

  9.   

    AutoGenerateColumns是自动生成列的属性,给他设为false则不会自动生成列
    更新估计使用到了DataField作为sql的参数,前台找不到所有会出错
      

  10.   

    我猜LZ问题是: 
    在AutoGenerateColumns =false 下 进行更新时报错 "未找到泛型方法xxxxxx"如果是这个问题,我的解决方案是:
    1.
    AutoGenerateColumns =false,不能让它自动生成列
    2.
    AutoGenerateColumns =false ,update失败的原因是:<asp:BoundField DataField="Id" HeaderText="账户标识" InsertVisible="false"Visible="false" />       
    BoundField:除了能显示,在DetailsView发生改变时会将用户填写的新的ID 值发回服务器,如果
    代码中没有让其显示,并把值带回去,那么服务器将取不到值。(可以用断点查看ID值是否回传)
    3.如果ID 只需要显示,也就是更新的方法中不需要ID列的值,那么建议LZ将代码改下
    a.转成模板列
    b.<ItemTemplete>
          <%Eval("Id");%>
    </ItemTemplete>
    <EditTemplete> 节点都删了改好了,请回复一下!