我做了动态的gridview,我想把表的主键隐藏了怎么做?

解决方案 »

  1.   

    GridView1.Columns[3].Visible = false;//隐藏索引为3的列
      

  2.   

    隐藏?不显示出来么?http://topic.csdn.net/u/20090722/15/02f650a5-e97e-4870-9c1b-61529bc248c6.html?88038
      

  3.   

    我的是动态的gridview,GridView1.Columns[3].Visible = false;//隐藏索引为3的列这个方法不好用,
      

  4.   

    protected void GridView_RowCreated(object sender, GridViewRowEventArgs e) 
        { 
            if (e.Row.RowType == DataControlRowType.DataRow || e.Row.RowType == DataControlRowType.Header) 
            { 
                e.Row.Cells[1].Visible = false; 
                e.Row.Cells[2].Visible = false; 
            } 
        } 
    取值: 
    GridView.Rows [i].Cells [1].Text 
    或 
    <asp:HiddenField ID="Hf_id" Value=' <%#Eval("id")%>' runat="server" /> 
    或 
      <asp:BoundField DataField="BH" HeaderText=""> 
    <ControlStyle CssClass="hidden" /> 
    <FooterStyle CssClass="hidden"/> 
    <HeaderStyle CssClass="hidden"/> 
    <ItemStyle CssClass="hidden"/> 
    </asp:BoundField> 
    .hidden 

    display:none; 

    http://topic.csdn.net/u/20090512/16/ae3e5b83-8315-4222-8302-c2755c71b389.html
      

  5.   

    ?表的主键隐藏
    --既然你的gridview是动态的,那么不绑定datatable中包含主键的那列就可以了。
      

  6.   

    那我在查询的时候他就报错,我不选ID号时,他就报错。
     protected void Button1_Click(object sender, EventArgs e)
        {
            SqlConnection sqlcon = new SqlConnection();
            sqlcon.ConnectionString = "data source=90D57B80B843459;database=Equipment;uid=sa;pwd=;";
            sqlcon.Open();
                   
     sqlstr = "select 型号,编号,配属单位,运用区段,上线运用日期,设备厂家,状态,ID号 from [liewei1] where 设备名称='列尾主机'order by 编号 Asc "; }
                
            SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
            DataSet myds = new DataSet();
            myda.Fill(myds);        myds.Tables[0].Columns[1].ColumnMapping = MappingType.Hidden;        GridView1.DataSource = myds;
            GridView1.DataBind();
            if (myds.Tables[0].Rows.Count != 0)
            { Label5.Text = "共 " + "" + this.GridView1.PageCount.ToString() + "" + " 页;" + "" + myds.Tables[0].Rows.Count.ToString() + "" + " 条记录";
            Label7.Text = "第 " + "" + (this.GridView1.PageIndex+1) + "" + " 页";
            LinkButton1.Visible = true;
            }
            else
            { Label5.Text = "没有找到你要查找的记录 !!!";
            Label7.Text = "";
            LinkButton1.Visible = false;
            }
            sqlcon.Close();
            DetailsView1.Visible = false;
            this.Page_Load(sender, e);
        }
      

  7.   

    用css控制 
    打开你那列的属性有下面2个属性
    headstyle 取个名字 hidden1
    itmestyle 取个名字 hidden2 
    建个css文件
    .hidden1{display:none;}
    .hidden2{display:none;}
      

  8.   

    为什么表的主键要帮定到gridview呢?
      

  9.   

    不管如何动态主键都应应该在第一列,这样好隐藏
    取值可以用DataKeys
      

  10.   

    查询方法里别给主键赋值,不知道这样行不行
    一般都是 a.id=Convert.ToInt32(reader["Id"].ToString());
    这句话不要应该就没有了吧
      

  11.   

    <asp:GridView ID="GridView" runat="server" AutoGenerateColumns="False" 
                     DataKeyNames="ID" AllowPaging="True" >
                    <Columns>                    
                        <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" 
                            ReadOnly="True" SortExpression="ID" Visible="False" />

                        <asp:BoundField DataField="字段1" HeaderText="字段1" 
                            SortExpression="字段1" />                    
                        <asp:BoundField DataField="字段2" HeaderText="字段2" />
                        <asp:BoundField DataField="日期" HeaderText="日期" DataFormatString="{0:d}" />
                        <asp:BoundField DataField="字段3" HeaderText="字段3" />
                        <asp:BoundField DataField="字段4" HeaderText="字段4" />
                        <asp:BoundField DataField="字段5" HeaderText="字段5" />                    
                    </Columns>   
    </asp:GridView>