设定datakey为id,但此列invisible。

解决方案 »

  1.   

    <%@ Import Namespace="System.Data" %>
    <HTML>
    <HEAD>
    <script language="C#" runat="server">    ICollection CreateDataSource() {
            DataTable dt = new DataTable();
            DataRow dr;        dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
            dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
            dt.Columns.Add(new DataColumn("DateTimeValue", typeof(DateTime)));        for (int i = 0; i < 9; i++) {
                dr = dt.NewRow();            dr[0] = i;
                dr[1] = "项 " + i.ToString();
                dr[2] = DateTime.Now;            dt.Rows.Add(dr);
            }        DataView dv = new DataView(dt);
            return dv;
        }    void Page_Load(Object Sender, EventArgs e) {
            if (!IsPostBack)
                BindList();
        }    void BindList() {
            DataList1.DataSource= CreateDataSource();
            DataList1.DataBind();
        }    void DataList_ItemCommand(object Sender, DataListCommandEventArgs e) {
            string cmd = ((LinkButton)e.CommandSource).CommandName;
            if (cmd == "选择")
                DataList1.SelectedIndex = e.Item.ItemIndex;
            BindList();
        } </script>
    </HEAD>
    <body>
    <h3><font face="宋体">对 DataList 使用 SelectedItemTemplate</font></h3>
    <form runat="server" ID="Form1">
    <font face="宋体" size="-1">
    <asp:DataList id="DataList1" runat="server" BorderColor="black" BorderWidth="1" GridLines="Both"
    CellPadding="3" Font-Name="Verdana" Font-Size="8pt" Width="150px" HeaderStyle-BackColor="#aaaadd"
    AlternatingItemStyle-BackColor="Gainsboro" SelectedItemStyle-BackColor="yellow" OnItemCommand="DataList_ItemCommand">
    <HeaderTemplate>

    </HeaderTemplate>
    <ItemTemplate>
    <asp:LinkButton id="button1" runat="server" Text="显示详细信息" CommandName="选择" />
    <%# DataBinder.Eval(Container.DataItem, "StringValue") %>
    </ItemTemplate>
    <SelectedItemTemplate>
    项:
    <%# DataBinder.Eval(Container.DataItem, "StringValue") %>
    <br>
    订购日期:
    <%# DataBinder.Eval(Container.DataItem, "DateTimeValue", "{0:d}") %>
    <br>
    数量:
    <%# DataBinder.Eval(Container.DataItem, "IntegerValue", "{0:N1}") %>
    <br>
    </SelectedItemTemplate>
    </asp:DataList>
    </font>
    </form>
    </body>
    </HTML>
      

  2.   

    将ID列绑定到DataGrid,但设Visable = "false"
    用的时候读该列的值就行了
      

  3.   

    webform
    设置id列不可见
    winform
    在tablestyles中设置id列的宽度为0
      

  4.   

    可以将ID字段也绑定到datagrid但不显示它
    I have hidden (column width = 0) columns on the right side of my datagrid, but tabbing does not work properly. How can I get tabbing to work?
    http://www.syncfusion.com/FAQ/WinForms/FAQ_c44c.asp#q857q
    然后用object obj=datagrid[0,0]的方式获取它。