因为ID是不可见的所以我用
<asp:BoundField DataField="productid" HeaderText="id" Visible="False" />
这个来存储关键字ID,但这样在CS中无法得到
gv_list.Rows[i].Cells[8].Text的值为""空

<asp:BoundField DataField="productid" HeaderText="id" />
这样就可以得到我的值,但却不能隐藏这个ID列要怎么做呢谢谢

解决方案 »

  1.   

    有没有什么重要信息........在gridview 中加入
      <asp:TemplateField>
          <ItemTemplate>
             <asp:HiddenField ID="hid" Value='<%#Eval("productid") %>' runat="server" />
           </ItemTempl
      </asp:TemplateField>在cs中
    HiddenField hid = (HiddenField)row.FindControl("hid");
    然后,hid.value 就是你所要的productid的值啦
      

  2.   

    方法很多
    http://dotnet.aspx.cc/article/2cb1c6d7-2b22-4655-8922-2a8a053a66fa/read.aspx
    http://dotnet.aspx.cc/article/a933b187-06c3-4263-9eec-414a54d9c815/read.aspx
    http://dotnet.aspx.cc/article/a8efc285-f0b1-4f8f-8e73-2b7d8724a47c/read.aspx
      

  3.   

    设置DataKeyNames属性(可以设置单列和多列),然后用this.GridView1.DataKeys[0].Value(单列)或者this.GridView1.DataKeys[0].Values(多列)获取。
      

  4.   

    在datakeynames属性中保存主键,然后用datakeys["id"]取出来
      

  5.   

    我怎么找不到datakeys属性啊
      

  6.   

    <asp:ImageButton ID="btn_dll" runat="server" CommandArgument='<%# Bind("id") %>'
                                CommandName="btn_dll" ImageUrl="images/icon_del.gif" CausesValidation="false" />
    和我的 DataKeyNames="id"其值不一样string id = e.CommandArgument.ToString();   //id=761正确
    id = gv_list.DataKeys[0].Value.ToString();  //id=760 ??
      

  7.   

    设置DataKeyNames属性
    这个属性我经常用的。基本都是靠这个实现的Snowdust(雪尘) 的回答很详细了
      

  8.   

    <asp:ImageButton ID="btn_dll" runat="server" CommandArgument='<%# Bind("id") %>'
                                CommandName="btn_dll" ImageUrl="images/icon_del.gif" CausesValidation="false" />
    和我的 DataKeyNames="id"其值不一样string id = e.CommandArgument.ToString();   //id=761正确
    id = gv_list.DataKeys[0].Value.ToString();  //id=760 ??问题,我取值不正确啊  如上
      

  9.   

    2005中要获取隐藏列的值,可以将改列转成摸板列
    (Label) labXX = (Label)GridView1.SelectRow.Cell[X].Findcontrol("ID");