比如我想获取“学号”字段里的值,而不是通过下标获取

解决方案 »

  1.   

    <asp:datagrid id="dgCheckBox" runat="server" GridLines="Vertical" CellPadding="3" BackColor="White"
    BorderWidth="1px" BorderStyle="None" BorderColor="#999999" AutoGenerateColumns="False">
    <SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#008A8C"></SelectedItemStyle>
    <AlternatingItemStyle BackColor="#DCDCDC"></AlternatingItemStyle>
    <ItemStyle ForeColor="Black" BackColor="#EEEEEE"></ItemStyle>
    <HeaderStyle Font-Bold="True" ForeColor="White" BackColor="#000084"></HeaderStyle>
    <FooterStyle ForeColor="Black" BackColor="#CCCCCC"></FooterStyle>
    <Columns>
    <asp:TemplateColumn>
    <ItemTemplate>
    <asp:CheckBox id="chkExport" runat="server"></asp:CheckBox>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:CheckBox id="chkExportON" runat="server"></asp:CheckBox>
    </EditItemTemplate>
    </asp:TemplateColumn>
    <asp:BoundColumn DataField="LastName" HeaderText="LastName"></asp:BoundColumn>
    <asp:BoundColumn DataField="FirstName" HeaderText="FirstName"></asp:BoundColumn>
    <asp:TemplateColumn HeaderText="City">
    <ItemTemplate>
    <asp:Label id=lblColumn runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.City") %>'>
    </asp:Label>
    </ItemTemplate>
    </asp:TemplateColumn>
    </Columns>
    <PagerStyle HorizontalAlign="Center" ForeColor="Black" BackColor="#999999" Mode="NumericPages"></PagerStyle>
    </asp:datagrid>
      

  2.   

    private void cmdFindSelected_Click(object sender, System.EventArgs e)
    {
    System.Web.UI.WebControls.CheckBox chkExport;
    String sID;
    System.Text.StringBuilder strMsg = new System.Text.StringBuilder("选中项的City字段值分别为:<hr color=red>");
    //循环取的DataGrid控件中选定项的值
    foreach(DataGridItem oDataGridItem in dgCheckBox.Items)
    { chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");
    //如果选中了则取值
    if(chkExport.Checked)
    {
    sID = ((Label)(oDataGridItem.FindControl("lblColumn"))).Text;
    strMsg.Append(sID+"<br><hr color=red>");
    }
    }
    //显示选中项的值
    Message.Text = strMsg.ToString();
    }
      

  3.   

    方法1、e.Cells[0].Text.ToString();
    表示选择的行,第一列的值。
    方法2、将DataKeyField设置为需要的字段,后台DataGrid1.DataKeys[e.Item.ItemIndex].ToString()取相应的字段;
      

  4.   

    楼上的方法都有局限性而且还是有错误
    1 e参数限定了取值范围,
    2 datakeyfield是对应的数据表的主键!不是什么字段都能设置成的!
      

  5.   

    //****你可以将学号放到一个隐藏控件在,然后用FindControl去查找控件.
      

  6.   

    for(int i = 0 ; i < dg_Order.Items.Count ; i ++)
    {
        decimal Sub;
        TextBox TempBox = (TextBox)dg_Order.Items[i].FindControl("txt_Qty")
        Sub = Convert.toDecimal(TempBox .text);

    }